我使用 openssl 生成了一个自签名证书 - 它完全是自签名的,而不是由自签名 CA 签名的。我已成功将其导入 nss 数据库以供浏览器使用。我现在想在全球范围内信任它,这样 wget、curl 等工具就不会烦人了。
根据其他地方的说明,我将证书复制到 /etc/pki/ca-trust/source/anchors/,然后运行“update-ca-trust extract”。不幸的是,这似乎只适用于 CA 证书,而不适用于单个证书。我该如何实现我想要的?我知道我可以生成一个自签名 CA 并用它签署我的证书,但我有理由不这样做。
我像这样生成了我的证书:
openssl genrsa -out server.key 4096
openssl req -new -key server.key -out server.crt
openssl x509 -sha256 -req -extensions v3_req -days 3650 -in server.csr -signkey server.key -out server.crt -extfile /etc/pki/tls/openssl.cnf
任何帮助将不胜感激!
答案1
您希望信任单个自签名证书来识别使用它的服务器,而无需信任它作为 CA 来签署其他证书,或启动您自己的 CA 根。
对于 RedHat 6,您需要将服务器证书放入 中/etc/pki/tls/certs/
,该文件的名称是证书的哈希值,后面.0
附加有 。
首先将证书放入临时文件,例如/tmp/selfie.crt
。使用 查找哈希值openssl x509 -noout -hash -in /tmp/selfie.crt
;为了便于论证,我们假设它是1234abcd
。使用 将证书放入 RH6 的受信任存储中cp /tmp/selfie.crt /etc/pki/tls/certs/1234abcd.0
。
谢谢Nick Burch 的指南让我重新记忆起那些细节。
尽管现在您可以每年花费 9 美元获得公开签名的证书,但如果不是更少的话,这样做开始带来的麻烦就比它本身的价值要多。
答案2
CA 证书就是证书。因此,在目录中添加证书应该可以工作。我刚刚尝试在 /etc/ca-certificates/trust-source/anchors/ 中添加我在 Firefox 中信任的证书之一,然后从 ff 中的受信任证书中删除了它。我重新加载了页面,它提示我证书不受信任。我重新启动了 Firefox,现在我可以访问该页面了。
我必须更新 ca-trust 才能使其与 wget 一起工作。
我的是 .pem 格式,BEGIN/END 文件。你用的是哪个发行版?你尝试过重启你的工具吗?
答案3
证书颁发机构需要颁发证书。在互联网上查询组织。证书需要花钱,但也有组织免费颁发证书。请注意,如果证书不受受信任组织的信任,浏览器将显示安全警告,例如:。the certificate is not trusted because the issuer certificate is unknown
另请注意,证书名称需要与网站的 fqdn 相同。