在这个教程中,我们将使用EC384-SHA384自签SSL证书

第一步 创建CA私钥

1
1openssl ecparam -genkey -name secp384r1 -out ca.key

第二步 删除私钥中的部分内容

1
2
3
4
# 删去这段内容
-----BEGIN EC PARAMETERS-----
BgXXXXXXX==
-----END EC PARAMETERS-----

第三步 生成CA公钥

1
2
openssl req -x509 -new -key ca.key -out ca.crt -days 3650 \
-subj "/C=CN/ST=Beijing/L=Beijing/O=MyOrganization/OU=IT Department/CN=My Root CA"

参数说明(按需修改):

C:国家代码(如CN/US)

ST:省份(可不填)

L:城市(可不填)

O:组织名称(必填)

OU:部门名称(必填)

CN:CA标识(必填,建议包含"CA"字样)

第四步 生成服务器端私钥

1
openssl ecparam -genkey -name secp384r1 -out server.key

第五步 创建server.cnf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
[ req ]
default_bits = 384
prompt = no
default_md = sha384
distinguished_name = req_distinguished_name
req_extensions = v3_req

[ req_distinguished_name ]
C = CN
ST = Beijing
L = Beijing
O = MyOrganization
OU = Web Services
CN = myserver.com #主名称,如example.com,如127.0.0.1

[ v3_req ]
subjectAltName = @alt_names

[ alt_names ] # 备用名称 如*.example.com,如127.0.0.2,
DNS.1 = myserver.com
DNS.2 = www.myserver.com
IP.1 = 192.168.1.100
# 添加更多域名/IP ↓
# DNS.3 = api.myserver.com
# IP.2 = 10.0.0.200

第六步 生成CSR

1
openssl req -new -key server.key -out server.csr -config server.cnf

第七步 签发服务器端证书(公钥)

1
2
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial \
-out server.crt -days 365 -sha384 -extfile server.cnf -extensions v3_req

此时,ca.crt是你的CA根证书公钥,ca.key是你的根证书私钥
service.crt是你的服务器证书公钥,service.key是你的服务器证书私钥