openssl生成自签证书

使用 openssl 生成自签证书。用于程序测试。

检查 openssl :

1
2
$ openssl version
OpenSSL 1.0.2k-fips 26 Jan 2017

创建三个目录:

1
mkdir root server client

预定义好证书信息:

1
SUBJ="/C=CN/ST=Guangxi/L=Cenxi/O=cststudio/OU=cststudio/CN=cststudio.com.cn"

SUBJ 释义:

1
2
3
4
5
6
7
字段        含义                本文示例
/C= Country 国家 CN
/ST= State or Province 省 Guangxi
/L= Location or City 城市 Cenxi
/O= Organization 组织或企业 cststudio
/OU= Organization Unit 部门 cststudio
/CN= Common Name 域名或IP cststudio.com.cn

根证书

1
2
3
4
5
6
7
8
9
10
11
12
13
14
cd root
# 生成RSA私钥 pass指定密码
openssl genrsa -des3 -passout pass:1qaz@WSX -out root.pass.key 2048

# 删除私钥中的密码
openssl rsa -passin pass:1qaz@WSX -in root.pass.key -out root.key
rm -f root.pass.key

# 生成 CSR(Certificate Signing Request,证书请求文件)
openssl req -new -key root.key -out root.csr -subj "$SUBJ"

# 生成根证书,-days指定为10年
openssl x509 -req -days 3650 -CAcreateserial -in root.csr -signkey root.key -out root.crt

最终文件:

1
2
$ ls
root.crt root.csr root.key

服务证书

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
cd ../server/

# 生成RSA私钥 pass指定密码
openssl genrsa -des3 -passout pass:1qaz@WSX -out server.pass.key 2048

# 删除私钥中的密码
openssl rsa -passin pass:1qaz@WSX -in server.pass.key -out server.key
rm -f server.pass.key

# 生成 CSR(Certificate Signing Request,证书请求文件)
openssl req -new -key server.key -out server.csr -subj "$SUBJ"

# 生成crt证书,-days指定为10年
openssl x509 -req -days 3650 -CAcreateserial -CA ../root/root.crt -CAkey ../root/root.key -in server.csr -signkey server.key -out server.crt

最终文件:

1
2
$ ls
server.crt server.csr server.key

客户证书

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
cd ../client/

# 生成RSA私钥 pass指定密码
openssl genrsa -des3 -passout pass:1qaz@WSX -out client.pass.key 2048

# 删除私钥中的密码
openssl rsa -passin pass:1qaz@WSX -in client.pass.key -out client.key
rm -f client.pass.key

# 生成 CSR(Certificate Signing Request,证书请求文件)
openssl req -new -key client.key -out client.csr -subj "$SUBJ"

# 生成crt证书,-days指定为10年
openssl x509 -req -days 3650 -CAcreateserial -CA ../root/root.crt -CAkey ../root/root.key -in client.csr -signkey client.key -out client.crt

openssl pkcs12 -export -passout pass:123456 -clcerts -in client.crt -inkey client.key -out client.p12

最终文件:

1
2
$ ls
client.crt client.csr client.key client.p12

参考:

  • 本文作者:李迟
  • 版权声明:原创文章,版权归署名作者,转载建议注明出处(当然不注明亦可)。
  • 本文链接:/pkc/redis-note1.html