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


Answers:


64

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

这只是生成证书的一种方法,另一种方法是将它们都包含在一个pem文件中,或者将另一个包含在p12容器中。

您可以通过多种方式生成这些文件,如果您想对证书进行自签名,则只需发出以下命令

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

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

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


运行“ openssl genrsa 1024> host.key”后,我在终端中收到了这个信息:“ e is 65537(0x10001)”是错误吗?
穆罕默德·阿里·阿克巴里

1
是的,这意味着openssl不能将随机种子写入它使用的默认文件,该文件由openssl.cnf定义,默认情况下,在CentOS / RHEL中,此文件位于/etc/pki/tls/openssl.cnf中。在这种情况下,请尝试执行与root用户相同的命令,然后看看它如何运行。
lynxman 2011年

我以root用户身份尝试使用它,但是我又得到了“ e is 65537(0x10001)”
Mohammad Ali Akbari

1
您的计算机上是否激活了SELinux?检查/ var / log / messages以了解为什么openssl无法写入文件
lynxman 2011年

3
letsencrypt.org是免费的ssl提供程序。看一下它,而不是向那些公司付很多钱。
Kaan

6

这些是SSL证书的公共(.crt)和私有(.key)部分。请参阅此问题以获取大量相关信息,例如,如果您想自己生成证书或购买证书。


基本问题,但是-我假设~/.ssh当我将CSR文件上传到ssl提供程序时,应该将.key文件复制到我的文件夹中吗?
卡西姆

1
@Qasim SSL文件与SSH无关(.ssh文件夹属于SSH)​​。
mad_vs
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.