Ssl

Starfield 萬用字元 SSL 證書並非在所有瀏覽器中都受信任

  • November 8, 2012

我不知道我還可以嘗試什麼來使用 Starfield 萬用字元 SSL 證書調試此問題。

問題在於,在某些瀏覽器(例如​​,Safari 或您可以為 OS X 10.5.8 獲得的最新版 chrome)中,證書顯示為不受信任,即使在根域中也是如此。

我的伺服器設置/背景資訊:

  • 一般 LAMP 設置 - CentOS 6.3 - 在 Godaddy VPS 上
  • Starfield Technologies 萬用字元 SSL 證書
  • 使用 Godaddy 支持頁面中的說明安裝
  • ssl.conf 行基本如下:

SSLCertificateFile /path/to/cert/mysite.com.cert

SSLCertificateKeyFile /path/to/cert/mysite.key

SSLCertificateChainFile /path/to/cert/sf_bundle.crt

一切似乎都很好,直到前幾天晚上我注意到 OS X 中的問題時,我認為它與瀏覽器版本相關,但只能在特定機器上複製它。

我試過的:

  • 從 godaddy 的 cert 儲存庫和 Starfield 的儲存庫版本更新 sf_bundle.crt
  • 遵循Jim Phares 的此 ServerFault 答案- 將 ChainFile 行更改為 Starfield 儲存庫中的 sf_intermediate.crt
  • 在我的網址上

使用http://www.sslshopper.com/ssl-checker.html

  • 它表示該域在證書上正確列出,但出現一個錯誤,顯示證書在所有 Web 瀏覽器中不受信任。您可能需要安裝中間/鏈證書以將其連結到受信任的根證書。

接下來我可以嘗試什麼來解決不受信任的證書問題?

讓我知道是否需要任何其他資訊可能有助於調試此問題。提前致謝!

解決方案:

My problem ended up being that I had forgotten to add the SSLCertificateChainFile line to the virtual host(s) in my httpd.conf and had only been editing those lines in ssl.conf instead, thanks for all the suggestions!

你可以做兩件事:

  1. 驗證中間鏈
  2. 清理中間鏈

驗證中間鏈

正如錯誤似乎表明的那樣,您的中間證書鏈有些問題。你應該檢查你從哪裡得到你的證書,並且你得到了正確的中間包。

openssl x509 -noout -hash您應該使用andopenssl x509 -noout -issuer_hash命令驗證鏈中每個證書的“雜湊”和“頒發者雜湊” 。試試這個來獲取你的證書的頒發者雜湊:

cat /path/to/cert/mysite.com.cert | openssl x509 -noout -issuer_hash

然後嘗試在sf_bundle.crt您指定為SSLCertificateChainFile. 您可能必須提取證書(或只需將它們複製粘貼到命令中):

cat first_cert_from_sf_bundle.crt | openssl x509 -noout -hash

檢查所有這些。如果沒有人有這個散列,那麼那裡有問題。繼續進行這些檢查,直到找到具有相同-hash-issuer_hash. 這是您的根證書。

如果缺少某些內容,您可以在此處查看其他中間文件https://certs.starfieldtech.com/anonymous/repository.seam。下載這些並將它們-hash-issuer_hash您遇到的問題進行比較。

如果一切正常,那麼……

清理中間鏈

當您遇到奇怪的驗證錯誤時,我已經看到這也有幫助。確保您的中間鏈僅以****正確的順序列出所需的證書(如果是 PEM 格式則更容易)。換句話說,如果你的鍊是Your cert -> cert A -> cert B -> Starfield Root cert. 嘗試按此順序附加這些(您可以跳過第一個和最後一個),以便您的中間鏈看起來像這樣:

-----BEGIN CERTIFICATE-----
cert A
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
cert B
-----END CERTIFICATE-----

我個人喜歡將所有這些證書(個人證書、中間證書、根證書)保存在同一個文件中。然後我只是將此文件指定為SSLCertificateFileSSLCertificateChainFile

引用自:https://serverfault.com/questions/446500