【发布时间】:2017-06-30 14:25:01
【问题描述】:
几个月前,我在 Debian 8 中设置了 GitLab 社区版,从那时起我们的团队就成功使用了。目前我们使用的是 9.3.0 版本。
本周我们的经理说他想将GitLab访问切换为HTTPS,所以我创建了一个自签名证书并对gitlab.rb进行了以下更改:
external_url 'https://srv-git-dev'
nginx['redirect_http_to_https'] = true
nginx['ssl_certificate'] = "/etc/gitlab/ssl/srv-git-dev.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/srv-git-dev.key"
一切看起来都还不错,直到有人说他们没有收到电子邮件通知。我检查了这是否仅发生在某些人身上,但意识到事实并非如此。当我将 GitLab 访问权限更改为 HTTPS 时,整个团队都停止接收通知邮件...
为了确认这个理论,并检查我没有错误地更改任何其他配置值,我评论了上述更改并且通知再次开始工作......
这是 SMTP 配置(在此期间我从未更改过):
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "Exchange_Server_Address"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_domain'] = "My_Domain"
gitlab_rails['smtp_enable_starttls_auto'] = false
gitlab_rails['smtp_tls'] = false
gitlab_rails['smtp_openssl_verify_mode'] = 'none'
这是我迄今为止为尝试找出问题所做的分析:
> gitlab-rake gitlab:check
没有错误
> gitlab-rails 控制台制作
ActionMailer::Base.smtp_settings
=> {:address=>"Exchange_Server_Address", :port=>25, :domain=>"My_Domain", :enable_starttls_auto=>false, :tls=>false, :openssl_verify_mode=>"none", :ca_file =>“/opt/gitlab/embedded/ssl/certs/cacert.pem”}
> gitlab-rails 控制台制作
Notify.test_email('my_email_address', 'Hello World', 'This is a test message').deliver_now
我收到了邮件
我在这里做错了什么?
我还能测试什么?
因为我找不到将 GitLab 配置为只能通过 HTTPS 访问与它搞砸通知系统之间的关系。
【问题讨论】:
-
external_url和Exchange_Server_Address是 FQDN 吗? -
在here 中,我看到许多设置将
openssl_verify_mode设置为peer -
@secustor 是的,它们都是 FQDN
-
@chenrui 试过了还是不行
标签: git email https configuration gitlab