在redhat中导入自签名证书

时间:2014-03-19 14:38:06

标签: ssl https openssl redhat self-signed

如何在Red-Hat Linux中导入自签名证书。

我不是证书方面的专家,很难通过谷歌搜索找到正确的答案,因为我不知道.cer,.crt或.pem之间的区别。话虽如此,我想做的不应该是火箭科学(在Windows中,我可以在浏览器中点击几下) 我想连接到使用自签名证书的服务器。例如,使用wget,而不必使用--no-check-certificate选项。 为了完成这项工作,我将不得不将服务器的自签名证书添加到我的RedHat框中。我发现证书位于/ etc / pki / tls中。但是我不知道应该采取什么行动来制作wget功能而不抱怨。

我可以使用以下命令从服务器获取SSL证书:

openssl s_client -connect服务器:443

证书介于" BEGIN CERTIFICATE和END CERTIFICATE"我不知道这是什么样的证书。 接下来我将把它放在/ etc / pki / tls / certs目录中并应用一些我不知道的openssl secert酱。 你能帮忙吗?

2 个答案:

答案 0 :(得分:22)

我不知道如何将特定的站点证书导入OpenSSL的信任数据库(我希望我做到了!),但由于您正在谈论自签名证书,我们可以通过导入您的证书来处理它作为新的可信CA证书。但是警告:您也将信任任何由该证书签名的网站。

查找并下​​载证书

您可以使用以下网址直接从网站下载自签名证书:

openssl s_client -connect server:443 <<<'' | openssl x509 -out /path/file

请注意,对于自签名证书(如原始问题中所述),您应 执行此操作。 如果证书由其他CA签署,则无法使用上述内容运行;相反,您需要找到相应的CA证书并下载。

导入证书并使其受信任

通过RHEA-2013-1596在Fedora 19和RHEL6中添加了update-ca-trust命令。如果你拥有它,你的步骤很简单(但需要root / sudo):

  1. 将CA证书复制到/etc/pki/ca-trust/source/anchors/
  2. update-ca-trust enable; update-ca-trust extract
  3. (请注意,RHEL7和现代Fedora中不需要enable命令)
  4. 如果你没有update-ca-trust,那就更难了(并且仍然需要root / sudo):

    1. cd /etc/pki/tls/certs
    2. 在此处复制CA证书
    3. ln -sv YOURCERT $(openssl x509 -in YOURCERT -noout -hash).0
    4. PS:问题提到了Red Hat,但是对于那些除了Fedora / RHEL之外还要做同样事情的人来说,wiki.cacert.org/FAQ/ImportRootCert可能会有所帮助。

答案 1 :(得分:5)

您可以使用以下步骤执行您想要执行的操作:

  1. 将SSL证书(包括“----- BEGIN CERTIFICATE -----”和“----- END CERTIFICATE -----”行)放入目录“{{中的文件中1}}“ - 为了示例,我们称之为”myserver.pem“。
  2. 运行

    计算此证书的证书哈希值

    /etc/pki/tls/certs

    为了举例,我们假设哈希值是“1a2b3c4d”。

  3. 根据此哈希值在certs目录中创建一个符号链接,如下所示:

    openssl x509 -noout -hash -in /etc/pki/tls/certs/myserver.pem

    我假设此目录中已经没有其他证书散列到相同的哈希值 - 如果已经存在“1a2b3c4d.0”,那么请改为使用链接“1a2b3c4d.1”(或者如果有的话)已经是“.1”,让你的“.2”等等......)

  4. ln -s /etc/pki/tls/certs/myserver.pem /etc/pki/tls/certs/1a2b3c4d.0以及其他使用SSL的工具会将该证书识别为有效。使用GUI可能有一种更简单的方法,但可以通过命令行来完成。