我剛剛編譯了 OpenSSL 和 Lynx Web 瀏覽器。我想瀏覽 HTTPS 網站。據我了解,我需要從這些網站使用的 CA 取得證書,我還需要我自己的某種證書。 Web 瀏覽器正確呼叫 OpenSSL,但我無法瀏覽互聯網,因為我沒有 CA 憑證的初始清單。
有沒有人有文件解釋如何取得這些憑證並讓 OpenSSL 使用它們?
謝謝
答案1
若要讓您的瀏覽器處理 SSL/TLS,您必須在瀏覽器中安裝來自不同憑證授權單位的根憑證。有了這些證書,您的瀏覽器將識別簽署金鑰並接受它們。你可以檢查這裡查看 Mozilla 中安裝的 CA 清單以及憑證本身。
PS 要安裝證書,您必須檢查瀏覽器文檔
答案2
有沒有人有文件解釋如何取得這些憑證並讓 OpenSSL 使用它們?
來自山貓的README.sslcerts
:
初步程序:
假設 openssl 已正確安裝,預設的 cert 目錄是 /usr/local/ssl/certs(通常是 /etc/ssl/certs,但我們需要一個討論的出發點)並且 lynx 有已編譯--with-ssl。
您系統上憑證的預設位置可能不同,或者可能沒有。您必須在以下說明中替換該位置為 /usr/local/ssl/certs ,和/或設定環境變數。
若要確定係統上憑證的預設位置,您可以執行以下命令:
strings libcrypto.a | grep -in cert | less
在此輸出中尋找
SSL_CERT_DIR
和SSL_CERT_FILE
,以及它們上方的行。這分別是憑證和 CA 憑證包 cert.pem 的預設位置。當然,您需要知道 libcrypto.a 在哪裡找到。輸出範例:
7490:/etc/ssl/certs 7491:/etc/ssl/cert.pem 7492:SSL_CERT_DIR 7493:SSL_CERT_FILE
其他可能的範例輸出:
31555:/usr/local/ssl/certs 31556:/usr/local/ssl/cert.pem 31557:SSL_CERT_DIR 31558:SSL_CERT_FILE
請注意,安裝 OpenSSL 後,c_rehash 公用程式將安裝在 bin 目錄中(預設
/usr/local/ssl/bin
)。您需要知道它在您系統上的位置。命令:whereis c_rehash
可能會給出有用的結果。
另請注意,沒有隨 OpenSSL 一起分發 CA 憑證包。 OpenSSL 團隊明確決定不這麼做。取得一組受信任的憑證由安裝程式決定。
從最新版本的 Internet Explorer 中提取受信任的根憑證包不再是一個相當簡單的過程。多個憑證不再可匯出為 DER 格式的文件;提取單一憑證是 DER 的唯一匯出,而 DER 會轉換為 PEM。
有權存取 Apple OS X 的使用者可以將鑰匙圈存取系統根中的所有憑證匯出為 .pem 檔案。將其放入 SSL_CERT_DIR 並進行哈希處理,就完成了。
MirOS BSD 專案也提供了它們。本文檔稍後將詳細介紹轉換和安裝它們的過程,如果您只需要 lynx 信任的商業提供的證書,則可以跳到安裝或更新 CA 捆綁包部分。
提取的 Mozilla 憑證包可從curl 專案下載http://curl.haxx.se/docs/caextract.html以及從 Mozilla 原始碼中提取的腳本。