在哪里以及如何获取证书并将其安装到新安装的 OpenSSL 中?

在哪里以及如何获取证书并将其安装到新安装的 OpenSSL 中?

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

相关内容