無法驗證第一個證書(Comodo EssentialSSL 萬用字元)
我是設置 SSL 證書和使用伺服器的新手,所以在我嘗試解釋我自己所處的情況時,請多多包涵。
我最近獲得了 Comodo EssentialSSL 萬用字元許可證,該許可證將用於保護我的伺服器。我正在配置的伺服器用於 Kolab。Kolab 正在工作,但沒有配置 SSL,所以我想我可以設置它。我按照相應 Kolab 操作指南頁面 ( https://docs.kolab.org/howtos/secure-kolab-server.html ) 上提供的說明進行操作,但卡在了設置 cyrus-IMAP 伺服器的部分。
執行時:
openssl s_client -showcerts -connect example.org:993
我得到以下輸出(截斷):
CONNECTED(00000003) depth=0 OU = Domain Control Validated, OU = EssentialSSL Wildcard, CN = *.example.org verify error:num=20:unable to get local issuer certificate verify return:1 depth=0 OU = Domain Control Validated, OU = EssentialSSL Wildcard, CN = *.example.org verify error:num=27:certificate not trusted verify return:1 depth=0 OU = Domain Control Validated, OU = EssentialSSL Wildcard, CN = *.example.org verify error:num=21:unable to verify the first certificate verify return:1 --- Certificate chain 0 s:/OU=Domain Control Validated/OU=EssentialSSL Wildcard/CN=*.example.org i:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Domain Validation Secure Server CA -----BEGIN CERTIFICATE----- ... -----END CERTIFICATE----- --- Server certificate subject=/OU=Domain Control Validated/OU=EssentialSSL Wildcard/CN=*.example.org issuer=/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Domain Validation Secure Server CA --- No client certificate CA names sent --- SSL handshake has read 2019 bytes and written 421 bytes --- ... Start Time: 1502097786 Timeout : 300 (sec) Verify return code: 21 (unable to verify the first certificate) --- * OK [CAPABILITY IMAP4rev1 LITERAL+ ID ENABLE AUTH=PLAIN AUTH=LOGIN SASL-IR] example.org Cyrus IMAP git2.5+0-Debian-2.5~dev2015021301-0~kolab2 server ready
如果我將 -CApath 指定給證書,它確實可以工作並且我得到驗證返回碼:0(ok),但前提是我在通過 ssh 登錄到伺服器時執行命令。在 Thunderbird 上設置我的郵件時,我可以訪問我的郵箱,但必須首先添加一個安全例外,因為證書具有“未知身份”。但是,該證書在 https 的 443 埠上可以完美執行,而無需指定 -CApath。
任何幫助將不勝感激。
我通過檢查我的中間封包件的順序是否正確格式化並將其從 .ca-bundle 更改為 .pem 並將以下行添加到我的 imapd.conf 來解決問題:
tls_ca_path: /etc/ssl/certs
如果您收到以下錯誤 while
openssl s_client -showcerts -connect example.com:443
:驗證錯誤:num=20:無法獲取本地頒發者證書
您需要確保包含CA 的捆綁證書。
當 Comodo CA 頒發 SSL 證書時,它會發送特定的 Comodo CA 中間證書捆綁包,以便與它一起安裝。這些證書創建了所謂的證書鏈。最終使用者證書是使用其中一個中間體簽名的,該中間體是使用其中一個根簽名的。當瀏覽器到達網站時,它會嘗試建構證書鏈並將其提供的 SSL 證書連結回其信任儲存中的根之一。
確保您已從證書提供商處下載了這些文件。
最方便的方法(特別是對於Nginx)是將它們全部合併為一個,例如通過將 CA Bundle 附加到主 CRT 中:
$ cat STAR_example_com.ca-bundle > STAR_example_com.crt
如果您沒有單個
.ca-bundle
文件(CA Bundle),而是多個文件,請將它們合併為一個。然後
STAR_example_com.crt
照常安裝。Nginx 的範例:ssl_certificate /etc/nginx/ssl/STAR_example_com.crt; ssl_certificate_key /etc/nginx/ssl/STAR_example_com.key;