我已经使用 PEM 证书设置了带有 SSL 的代理服务器。现在,我有几台机器希望自动信任此证书(网络浏览器不会抱怨)。如何在每台计算机上安装 PEM 证书?
另外,更推荐的是:生成自签名证书还是串联蛇油证书?
答案1
将您的证书复制到
/etc/ssl/certs
目标系统上。然后使用命令生成的哈希值openssl x509 -noout -hash -in ca-certificate-file
替换ca-certificate-file
您的证书名称来创建符号链接。然后,您的证书应该被所有没有自己的证书存储的程序所接受。对于拥有自己的证书存储的程序(浏览器、Java 等),您将需要导入证书。
最好生成您自己的自签名或签名证书。
您可能想要安装
tinyca2
并生成您自己的证书颁发机构。您可以按照上述步骤详细说明导入证书颁发机构证书。为您的应用程序生成并部署签名证书。将您的 CA 证书分发给需要信任您的证书的用户。您可能需要提供有关如何向他们导入证书的信息。警告:如果他们这样做,您将成为他们的另一个可信 CA,因此请相应地保护您的 CA。
许多工具还可以配置为信任自签名证书或不受信任的 CA 的证书。这通常是一次性操作。这比接受来自不安全机构的 CA 证书更安全,只有接受的证书才是可信的。
答案2
在 Debian 和 Ubuntu 上,您必须将其复制certificate.pem
到/usr/local/share/ca-certificates/certificate.crt
然后运行dpkg-reconfigure ca-certificates
。/etc/ssl/certs
由该命令管理。
答案3
浏览器有一个受信任的“证书颁发机构”(CA) 证书列表。如果服务器的证书由这些 CA 证书之一签名且格式正确,您将不会收到 SSL 警告。
许多浏览器附带许多常见的 CA 证书,例如 Verisign、Thawte 等。大多数浏览器允许您将新 CA 导入到受信任的 CA 列表中。
与创建自己的自签名服务器证书一样,您可以创建自己的自签名 CA 证书。然后您可以使用它来签署您的服务器证书。如果您的 CA 不是由知名公司提供的(如果是您制作的则不会),则必须在服务器端显式导入它。
我以前曾经xca
这样做过。它具有 CA 和 HTTP 服务器的模板。程序是这样的:
- 为您的 CA 创建私钥
- 使用“CA”模板使用此密钥创建自签名 CA
- 为您的代理服务器创建私钥
- 使用第二个密钥创建“证书签名请求”(CSR),引用您刚刚创建的 CA。
- “签署”CSR,您将获得代理服务器证书,该证书引用您自己的 CA。
然后,您需要导出(如果使用的话作为文件xca
)CA 证书(但当然不包括私钥)。.pem
将生成一个,但您可以将扩展名更改为.crt
.当用户点击它时,它将被提供安装在 Firefox 和 Internet Explorer 以及可能的其他主要浏览器上。至于自动安装这个.crt,您可以:
- 在 IE 上使用组策略
- 如果用户想避免警告,则将用户引导至介绍页面,要求他们下载/安装 .crt。
然后,您可以使用 HTTP 服务器证书的导出功能(导出服务器端的私钥和证书)来放置在您的代理服务器上。