题 什么是.crt和.key文件以及如何生成它们?


我有以下配置:

SSLEngine on
SSLCertificateFile /etc/httpd/conf/login.domain.com.crt
SSLCertificateKeyFile /etc/httpd/conf/login.domain.com.key
SSLCipherSuite ALL:-ADH:+HIGH:+MEDIUM:-LOW:-SSLv2:-EXP

但我不知道如何生成 .crt 和 .key 文件。


46
2018-01-19 09:59






答案:


CRT 和密钥文件代表证书的两个部分,密钥是证书的私钥,crt是签名证书。

它只是生成证书的方法之一,另一种方法是在pem文件中或p12容器中的另一个。

您有多种方法可以生成这些文件,如果要对证书进行自签名,则可以发出此命令

openssl genrsa 1024 > host.key
chmod 400 host.key
openssl req -new -x509 -nodes -sha1 -days 365 -key host.key -out host.cert

请注意,对于自签名证书,您的浏览器会警告您证书不受“信任”,因为它尚未由浏览器信任列表中的证书颁发机构签名。

从那时起,您可以通过制作CA或从Verisign或Thawte等公司购买证书来生成您自己的信任链。


48
2018-01-19 10:10



在运行“openssl genrsa 1024> host.key”之后我在终端中得到了这个:“e是65537(0x10001)”这是一个错误吗? - Mohammad Ali Akbari
是的,这意味着openssl无法将随机种子写入它使用的默认文件,该文件由openssl.cnf定义,默认情况下在CentOS / RHEL中,此文件位于/etc/pki/tls/openssl.cnf中。在这种情况下尝试以root身份执行相同的命令,看看它是如何进行的。 - lynxman
我以root身份尝试,但我再次得到“e是65537(0x10001)” - Mohammad Ali Akbari
你的机器上是否激活了SELinux?检查/ var / log / messages以查看openssl无法写入文件的原因 - lynxman
letsencrypt.org 是一个免费的ssl提供商。看看它,而不是向这些公司支付很多钱。 - Kaan


这些是SSL证书的公共(.crt)和私有(.key)部分。看到 这个问题 对于过多的相关信息,例如如果您想自己生成证书,或者购买证书。


6
2018-01-19 10:09



基本问题但是 - 我假设我应该将.key文件复制到我的 ~/.ssh 文件夹,当我将CSR文件上传到我的ssl提供程序时? - Qasim
@Qasim SSL文件与SSH没有任何关系(这是.ssh文件夹所属的)。 - mad_vs