今天用openssl生成了下https的證書,總結(jié)下整個流程
1.設(shè)置openssl的環(huán)境變量,OPENSSL_CONF=openssl.cnf路徑
2.將openssl配置文件中的 req_extensions = v3_req注釋取消掉
3.去掉[req_distinguished_name]里0.xxx開頭的部分
4.修改[ v3_req ]和[ v3_ca ]內(nèi)容
[ v3_req ]
extendedKeyUsage=serverAuth(增強型密鑰用法,服務(wù)端驗證)
subjectAltName = @alt_names(使用者備用名稱)
[ v3_ca ]
basicConstraints = CA:true(使用基本約束)
5.增加[ alt_names ],里面的內(nèi)容可以增加多個DNS.X,IP.X,其中IP可以不填,但是DNS一定要和你的網(wǎng)站域名能匹配,比如你的網(wǎng)站是www.my.com,那么你可以設(shè)置為DNS.1=*.my.com
[ alt_names ]
DNS.1 = 127.0.0.1
IP.1 = 127.0.0.1
6.要生成一個根證書私鑰
- -aes256代表加密算法,還可以選擇des3等
- 1024代表加密強度
- -passout pass:123456 這里直接輸入密碼
openssl genrsa -passout pass:123456 -aes256 -out ca_private.key 2048
7.使用根證書私鑰生成csr(證書簽名請求)
openssl req -passin pass:123456 -new -key ca_private.key -out ca.csr -subj "/C=CN/ST=ST/L=CITY/O=o/OU=ou/CN=cn"
8.使用根證書私鑰和csr生成根證書
- -days后面是天數(shù),盡可能填大一點
- 天數(shù)后面是使用的算法,不要選擇sha1,谷歌瀏覽器會認為不安全
- -extensions表示擴展屬性
- -extfile表示擴展屬性所在的文件
openssl x509 -req -passin pass:123456 -days 18250 -sha256 -signkey ca_private.key -extensions v3_ca -extfile openssl.cnf -in ca.csr -out ca.cer
9.生成服務(wù)端證書私鑰
openssl genrsa -out server_private.key 2048
10.生成服務(wù)端證書簽名請求
openssl req -new -key server_private.key -out server.csr -subj "/C=CN/ST=ST/L=CITY/O=o/OU=ou/CN=cn"
11.生成服務(wù)端證書
openssl x509 -req -passin pass:123456 -days 18250 -sha256 -extensions v3_req -extfile openssl.cnf -CA ca.cer -CAkey ca_private.key -CAserial ca.srl -CAcreateserial -in server.csr -out server.cer
12.CER轉(zhuǎn)PEM
openssl x509 -in server.cer