信任自签名的PEM证书


23
  1. 我已经使用PEM证书使用SSL设置了代理服务器。现在,有几台我希望自动信任此证书的机器(而Web浏览器没有抱怨)。如何在每台计算机上安装PEM证书?

  2. 另外,还建议什么:生成自签名证书或并列蛇油证书?

Answers:


10

浏览器具有受信任的“证书颁发机构”(CA)证书的列表。如果服务器的证书由这些CA证书之一签名并且格式正确,则不会收到SSL警告。

许多浏览器附带许多常见的CA证书,例如Verisign,Thawte等。大多数浏览器允许您将新的CA导入此受信任的CA列表。

就像创建自己的自签名服务器证书一样,您可以创建自己的自签名CA证书。然后,您可以使用它来签署服务器证书。如果您的CA不是由知名公司提供的(如果是您自己制作的,则不是),则必须在服务器端显式导入它。

我以前曾经xca做过。它具有用于CA和HTTP服务器的模板。程序是这样的:

  • 为您的CA创建私钥
  • 使用“ CA”模板使用此密钥创建自签名CA
  • 为您的代理服务器创建私钥
  • 使用第二个密钥创建一个“证书签名请求”(CSR),引用您刚刚创建的CA。
  • “签名” CSR,您将拥有代理服务器证书,该证书引用了您自己的CA。

然后,您需要导出(如果使用,则作为文件xca)CA证书(但当然不包括私钥)。.pem将生成A,但您可以将扩展名更改为.crt。当用户单击它时,将提供将其安装在Firefox和Internet Explorer以及可能的其他主要浏览器上。至于此.crt的自动安装,您可以:

  • 在IE上使用组策略
  • 将用户引导到简介页面,要求他们下载/安装.crt(如果他们希望避免警告)。

然后,您可以使用HTTP服务器证书上的导出功能(将私钥和证书同时导出到服务器端)放到代理服务器上。


17
  1. 将证书复制到/etc/ssl/certs目标系统上。然后,使用命令生成的哈希值openssl x509 -noout -hash -in ca-certificate-file替换ca-certificate-file证书名称来创建符号链接。然后,没有自己的证书存储的所有程序都应接受您的证书。

    对于具有自己的证书库(浏览器,Java等)的程序,您将需要导入证书。

  2. 最好生成自己的自签名或已签名证书。

    您可能需要安装tinyca2并生成自己的证书颁发机构。您可以按照上述步骤中的详细说明导入证书颁发机构证书。为您的应用程序生成并部署签名证书。

    将您的CA证书分发给那些需要信任您的证书的用户。您可能需要提供有关如何将证书导入到他们的信息。警告:如果他们这样做,您将成为他们的另一个受信任的CA,因此请相应地保护您的CA。

    还可以将许多工具配置为信任自签名证书或具有不受信任的CA的证书。这通常是一次性动作。如果从不安全的机构接受CA证书(只有接受的证书是受信任的),这样做可以更加安全。


可以更具体吗?例如:主机A向主机B发送邮件,并抱怨无法验证B的身份。在主机B上,我们创建了一个自签名证书:(/etc/ssl/certs/ssl-cert-snakeoil.pem这是Debian软件包ssl-cert为您创建的)。我们将其复制到主机A并调用它/etc/ssl/certs/host-B.pem(因为该主机可能已经有一个ssl-cert-snakeoil.pem)。然后我们跑ln -s /etc/ssl/certs/host-B.pem $(openssl x509 -noout -hash -in /etc/ssl/certs/host-B.pem)
AlexSchröder2014年

1
我在上面编辑过的@AlexSchröder。他们不应该导入您的蛇油证书,但是,如果您已设置自己的CA,则对于他们来说,导入您的CA是合理的。我尚未发现SMTP服务器之间的信任问题。可以告知大多数客户信任单个证书。
BillThor

谢谢。我在寻找要获取的日志条目的解释时发现了这个问题。我发现的解释是,在那里为A将邮件发送到B,A会报告,这是不可能的,以验证B的身份
亚历克斯·施罗德

这正是我想要的! - 谢谢!现在,我可以使用davfs挂载受保护的webDAV,而不会造成太多麻烦。
Wyatt8740

13

在Debian和Ubuntu上,您必须将复制certificate.pem/usr/local/share/ca-certificates/certificate.crt,然后运行dpkg-reconfigure ca-certificates/etc/ssl/certs由该命令管理。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.