gitlab发送邮件时报错OpenSSL::SSL::SSLError(SSL_connect returned=1 errno=0 state=error: wrong version numbe)

最近,部门需要搭建一个gitlab来管理代码。gitlab搭建过程呢,网上的资料很全面,这里就不展开叙述了。

  在服务器搭建完成之后,gitlab需要集成邮件,以便创建按账号后通知用户进行账号激活。在配置好git中的smtp后测试邮件发送时,出现了错误,如图: 


图1

此时出现了OpenSSL::SSL::SSLError (SSL_connect returned=1 errno=0 state=error: wrong version number)这个错误。

  附上我们gitlab中smtp的配置,如图:

图2

出现ssl版本不兼容错误,我也是在网上找了一大堆的资料。但都没有有效的解决。

  导致该问题的原因呢看起来像是ssl_version版本不兼容导致的,我们服务器上的TLS协议都是v1.2版本。gitlab服务器上的的openssl的版本为1.1.1,该版本支持TLSv1.2。

  所以此时我就想到了在配置邮件相关smtp参数中正好有关tls配置的,最后再通过在gitlab官网问题中查看,发现很多人也碰见了这个问题,得出的结论smtp无法与TLSv1.2一起使用。

  其中gitlab_rails['smtp_tls'] = true这一项配置是导致该报错误的元凶。

  解决方法:将其设置为false

  此时有小伙伴会担心设置为false后发送的邮件就不会被加密了,但是,在端口587抓取的结果中会发现邮件仍然被加密了。具体可以查看gitlab官网中对该问题的处理。

   将配置文件修改后gitlab重新加载配置文件(linux下),键入命令:gitlab-ctl reconfigure

   然后gitlab重启:gitlab-ctl restart

   最后进行发送邮件测试:1)gitlab-rails console

                                            2)Notify.test_email('xxxxxxxx@xxxx.cn', 'Message Subject', 'Message Body').deliver_now

   发送邮件最终测试正常结果,如图:

图3
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容