我刚刚编译了 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 源代码中提取的脚本。