使用 openssl
自签证书
1. 生成私钥文件 (private key)#
1
| openssl genrsa -out mykey.key 2048
|
生成一个名为 mykey.key
的私钥文件。也可以根据需要调整密钥长度(例如 4096 位)。
2. 根据私钥生成证书签名请求文件 (CSR文件)#
1
| openssl req -new -key mykey.key -out myrequest.csr
|
基于 mykey.key 文件生成一个 CSR 文件 myrequest.csr。
1
2
3
4
5
6
7
8
9
| 在执行过程中,OpenSSL 会提示你输入一些信息,如:
• 国家代码 (Country Name)
• 省/市 (State or Province Name)
• 地区 (Locality Name)
• 组织 (Organization Name)
• 组织单位 (Organizational Unit Name)
• 公共名称 (Common Name) —— 通常填写域名
• 电子邮件地址 (Email Address)
这些信息会嵌入到证书中,作为身份标识。
|
3. 使用私钥对证书申请进行签名从而生成证书文件 (pem文件)#
使用私钥对 CSR 进行签名,生成一个自签名证书:
1
| openssl x509 -req -days 365 -in myrequest.csr -signkey mykey.key -out mycert.crt
|
1
2
3
4
5
| • -req 表示输入的是一个证书签名请求文件。
• -days 365 指定证书的有效期为 365 天(你可以根据需要调整有效期)。
• -in myrequest.csr 指定之前生成的 CSR 文件。
• -signkey mykey.key 使用之前生成的私钥进行签名。
• -out mycert.crt 指定生成的证书文件名为 mycert.crt。
|
也可以将这三行命令合并成一个命令,这将不会生成 CSR 文件。
1
2
3
| openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout mykey.key -out mycert.crt \
-subj "/C=US/ST=State/L=City/O=Organization/OU=Unit/CN=example.com"
|
1
2
3
4
5
6
7
| • -x509 让 req 命令生成自签名证书而不是证书签名请求(CSR)。
• -nodes 表示不对生成的私钥进行加密(不设置密码)。
• -days 365 设置证书有效期为 365 天。
• -newkey rsa:2048 同时生成一个 2048 位的 RSA 私钥。
• -keyout mykey.key 指定生成的私钥文件名为 mykey.key。
• -out mycert.crt 指定生成的证书文件名为 mycert.crt。
• -subj 用于提供证书中的主题信息,避免在交互模式下逐项输入。
|