📜  创建 crt 和 key (1)

📅  最后修改于: 2023-12-03 15:22:39.985000             🧑  作者: Mango

创建 .crt 和 .key 文件

在 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.crtserver.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 证书和服务器证书,则可以执行以下步骤:

  1. 创建 CA 证书

    首先,我们需要先创建一个自签名的 CA 证书。执行以下命令:

    $ openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout ca.key -out ca.crt
    

    这里生成的 .crt.key 文件分别为 ca.crtca.key

  2. 生成服务器私钥

    然后,我们需要生成服务器私钥。执行以下命令:

    $ openssl genrsa -out server.key 2048
    

    这里生成的 server.key 文件用于存放服务器私钥。

  3. 生成服务器证书签名请求

    接下来,我们需要生成服务器证书签名请求。执行以下命令:

    $ openssl req -new -key server.key -out server.csr
    

    这里生成的 server.csr 文件用于存放服务器证书签名请求。

  4. 使用 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 的官方文档