Openssl 生成根證書并簽證域名

1. 生成ext文件

echo -e "[v3_req]\n"\
"authorityKeyIdentifier=keyid,issuer\n"\
"basicConstraints=CA:FALSE\n"\
"keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment\n"\
"subjectAltName = @alt_names\n"\
"\n"\
"[alt_names]" > v3.ext

2. 設(shè)定域名證書

echo DNS.1 = www.xxx.com >> v3.ext

請把上面 www.xxx.com 改成自己的需要生成服務(wù)器證書的域名

3. 生成根證書(ca)的RSA 密鑰文件

openssl genrsa -out ca_private.key

4. 生成ca的證書請求文件

openssl req -new -key ca_private.key -out ca.req \
    -subj "/C=CN/ST=Guangdong/L=Shenzhen/O=testo/OU=testg/CN=testca"

-subj 參數(shù)中填寫的是證書信息

  • C 是國家編號, 2位數(shù)
  • ST 是省份
  • L 是城市名
  • O 是組織名
  • OU 是組名
  • CN 是證書擁有者名稱

5. 生成ca根證書(自己給自己簽證)

openssl x509 -req -days 3650 -sha256 -extensions v3_ca \
    -signkey ca_private.key -in ca.req -out ca.cer

-days 是根證書的有效天數(shù)
-sha256 是采用sha256離散算法,谷歌瀏覽器不在支持sha1算法的安全提示,也即是說如果用sha1作為參數(shù),谷歌瀏覽器可能顯示為不安全

6. 生成服務(wù)器網(wǎng)站的SSL密鑰

openssl genrsa -out server_private.key

7. 生成服務(wù)器網(wǎng)站的證書請求文件

openssl req -new -key server_private.key -out server.req \
    -subj "/C=CN/ST=Guangdong/L=Shenzhen/O=demo/OU=demog/CN=xxx.com"

subj 的內(nèi)容與#4一樣,這里是網(wǎng)站使用者的證書信息

8.使用ca根證書生成服務(wù)器證書

openssl x509 -req -days 3650 -sha256 -extfile v3.ext -extensions v3_req \
    -CA ca.cer -CAkey ca_private.key -CAserial ca.srl -CAcreateserial \
    -in server.req -out server.cer

最后生成的文件如下:

  • v3.ext 用于生成服務(wù)器證書所需要的配置文件, 包含證書綁定的域名
  • ca_private.key ca根證書的密鑰
  • ca.req 生成ca根證書的請求文件
  • ca.cer ca根證書
  • ca.srl 在使用ca根證書簽證網(wǎng)站證書時(shí)自動(dòng)生成的序列文件
  • server_private.key 服務(wù)器ssl證書的密鑰
  • server.req 服務(wù)器證書生成的請求文件
  • server.cer ca根證書簽證的服務(wù)器網(wǎng)站的ssl證書

部署到nginx中只需要 server_private.keyserver.cer

根證書 ca.cer 可以安裝到本地操作系統(tǒng)中對網(wǎng)站的證書進(jìn)行驗(yàn)證

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容