📅  最后修改于: 2023-12-03 15:22:39.985000             🧑  作者: Mango
在 SSL/TLS 证书中,.crt
文件用于存放签名过的公钥,.key
文件则用于存放对应的私钥。本文将介绍如何使用 OpenSSL 工具创建这两个文件。
在开始之前,你需要先安装 OpenSSL。一般来说,在大多数 Linux 发行版中都可以通过包管理器安装,例如在 Ubuntu 上可以通过以下命令安装:
$ sudo apt-get install openssl
有了 OpenSSL,我们就可以开始创建证书了。
如果你只是需要一个自签名的证书,可以使用以下命令生成:
$ openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout server.key -out server.crt
这条命令生成的 .crt
和 .key
文件分别为 server.crt
和 server.key
。其中,-x509
表示生成自签名证书,-nodes
表示不使用加密的私钥,-days
指定证书的有效期,-newkey rsa:2048
表示使用 2048 位的 RSA 密钥对生成证书。
执行上述命令后,你需要回答一些问题,例如证书各个字段的值,如下所示:
Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:
Email Address []:
这些信息将会被用来填充证书中的各个字段。其中,比较重要的是 Common Name
,这里需要填写证书对应的主机名或域名。
如果你需要创建 CA 证书和服务器证书,则可以执行以下步骤:
创建 CA 证书
首先,我们需要先创建一个自签名的 CA 证书。执行以下命令:
$ openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout ca.key -out ca.crt
这里生成的 .crt
和 .key
文件分别为 ca.crt
和 ca.key
。
生成服务器私钥
然后,我们需要生成服务器私钥。执行以下命令:
$ openssl genrsa -out server.key 2048
这里生成的 server.key
文件用于存放服务器私钥。
生成服务器证书签名请求
接下来,我们需要生成服务器证书签名请求。执行以下命令:
$ openssl req -new -key server.key -out server.csr
这里生成的 server.csr
文件用于存放服务器证书签名请求。
使用 CA 证书签名服务器证书
最后,我们可以使用 CA 证书签名服务器证书。执行以下命令:
$ openssl x509 -req -days 365 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt
这里生成的 .crt
文件为 server.crt
,用于存放签名过的服务器证书。
以上就是创建 .crt
和 .key
文件的步骤。如果你需要更详细的使用说明和参数解释,可以参考 OpenSSL 的官方文档。