在redhat中导入自签名证书

问题描述 投票:0回答:3

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

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

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

openssl s_client -连接服务器:443

证书位于“BEGIN CERTIFICATE 和 END CERTIFICATE”之间,我不知道这是什么证书。 接下来,我必须将其放在 /etc/pki/tls/certs 目录中,并应用一些我不知道的 openssl 秘密酱。 你能帮忙吗?

ssl https openssl redhat self-signed
3个回答
46
投票

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

查找并下载证书

您可以直接从网站快速下载自签名证书:

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

请注意,您应该在自签名证书的情况下执行此操作(如原始问题中所述)。 如果证书是由其他 CA 签名的,则无法使用上述命令运行;相反,您需要找到适当的 CA 证书并下载。

导入证书并使其受信任

Fedora 19 和 RHEL6 中通过

RHEA-2013-1596
添加了 update-ca-trust 命令。如果你有它,你的步骤就很简单(但需要 root/sudo):

  1. 将 CA 证书复制到
    /etc/pki/ca-trust/source/anchors/
  2. update-ca-trust enable; update-ca-trust extract
  3. (请注意,
    enable
    命令在 RHEL7 和现代 Fedora 中不是必需的)

如果你没有 update-ca-trust,这只是有点困难(并且仍然需要 root/sudo):

  1. cd /etc/pki/tls/certs
  2. 在此处复制 CA 证书
  3. ln -sv YOURCERT $(openssl x509 -in YOURCERT -noout -hash).0

PS:这个问题提到了 Red Hat,但对于任何想要对 Fedora/RHEL 之外的东西做同样事情的人来说,wiki.cacert.org/FAQ/ImportRootCert 可能会有所帮助。


9
投票

您可以使用以下步骤做您想做的事情:

  1. 将 SSL 证书(包括“-----BEGIN CERTIFICATE-----”和“-----END CERTIFICATE-----”行)放入目录“
    /etc/pki/tls/certs
    ”中的文件中- 为了举例,我们将其称为“myserver.pem”。
  2. 通过运行计算此证书的证书哈希值

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

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

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

    ln -s /etc/pki/tls/certs/myserver.pem /etc/pki/tls/certs/1a2b3c4d.0

    我假设此目录中已经没有其他证书哈希为相同的哈希值 - 如果已经有“1a2b3c4d.0”,则将您的链接改为“1a2b3c4d.1”(或者如果已经有“.1”,制作你的“.2”,等等...)

wget
和其他使用 SSL 的工具将识别该证书有效。可能有一种更简单的方法可以使用 GUI 来完成此操作,但可以通过命令行来完成此操作。


0
投票

这个问题缺乏公认的答案,应该是最多点赞的答案。

有时仍然需要这样做,这是我在

ubi-min
RedHat 基础映像上使用的解决方案来自定义我的 docker 映像。

澄清一下,设置包括 RH yum 存储库的企业 Nexus 代理,代理 sert 是自签名的,并且容器将连接到一些具有自签名证书的主机。

由于容器是无根的,我必须先切换:

USER root
ADD <your-cert.crt> /etc/pki/ca-trust/source/anchors/<your-cert.crt>
RUN update-ca-trust enable; update-ca-trust extract
RUN sed -i 's#https://cdn-ubi.redhat.com/content/public/ubi#https://proxy-with-your-cert/cdn-ubi-redhat#g' /etc/yum.repos.d/ubi.repo
RUN microdnf install nano
USER nobody
© www.soinside.com 2019 - 2024. All rights reserved.