最近,部門(mén)需要搭建一個(gè)gitlab來(lái)管理代碼寇僧。gitlab搭建過(guò)程呢,網(wǎng)上的資料很全面沸版,這里就不展開(kāi)敘述了嘁傀。
? 在服務(wù)器搭建完成之后,gitlab需要集成郵件视粮,以便創(chuàng)建按賬號(hào)后通知用戶(hù)進(jìn)行賬號(hào)激活细办。在配置好git中的smtp后測(cè)試郵件發(fā)送時(shí),出現(xiàn)了錯(cuò)誤蕾殴,如圖:?
此時(shí)出現(xiàn)了OpenSSL::SSL::SSLError (SSL_connect returned=1 errno=0 state=error: wrong version number)這個(gè)錯(cuò)誤笑撞。
? 附上我們gitlab中smtp的配置岛啸,如圖:
出現(xiàn)ssl版本不兼容錯(cuò)誤,我也是在網(wǎng)上找了一大堆的資料茴肥。但都沒(méi)有有效的解決坚踩。
? 導(dǎo)致該問(wèn)題的原因呢看起來(lái)像是ssl_version版本不兼容導(dǎo)致的,我們服務(wù)器上的TLS協(xié)議都是v1.2版本瓤狐。gitlab服務(wù)器上的的openssl的版本為1.1.1瞬铸,該版本支持TLSv1.2。
? 所以此時(shí)我就想到了在配置郵件相關(guān)smtp參數(shù)中正好有關(guān)tls配置的芬首,最后再通過(guò)在gitlab官網(wǎng)問(wèn)題中查看,發(fā)現(xiàn)很多人也碰見(jiàn)了這個(gè)問(wèn)題逼裆,得出的結(jié)論smtp無(wú)法與TLSv1.2一起使用郁稍。
? 其中g(shù)itlab_rails['smtp_tls'] = true這一項(xiàng)配置是導(dǎo)致該報(bào)錯(cuò)誤的元兇。
? 解決方法:將其設(shè)置為false
? 此時(shí)有小伙伴會(huì)擔(dān)心設(shè)置為false后發(fā)送的郵件就不會(huì)被加密了胜宇,但是耀怜,在端口587抓取的結(jié)果中會(huì)發(fā)現(xiàn)郵件仍然被加密了。具體可以查看gitlab官網(wǎng)中對(duì)該問(wèn)題的處理桐愉。
? ?將配置文件修改后gitlab重新加載配置文件(linux下)财破,鍵入命令:gitlab-ctl reconfigure
? ?然后gitlab重啟:gitlab-ctl restart
? ?最后進(jìn)行發(fā)送郵件測(cè)試:1)gitlab-rails console
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2)Notify.test_email('xxxxxxxx@xxxx.cn', 'Message Subject', 'Message Body').deliver_now
? ?發(fā)送郵件最終測(cè)試正常結(jié)果,如圖: