基本概念
證書類別
- 根證書:生成服務(wù)端證書,客戶端證書的基礎(chǔ)。自簽名。
- 服務(wù)端證書:由根證書簽發(fā)。配置在服務(wù)器上。
- 客戶端證書:由根證書簽發(fā)。配置在瀏覽器、移動APP等客戶端上。
認(rèn)證方式
-
單向認(rèn)證(Client鑒權(quán)Server)
1、Client發(fā)送連接請求
2、Server端將Server證書發(fā)送給Client
3、Client使用CA根證書對Server證書進(jìn)行鑒權(quán) -
雙向認(rèn)證
1、單向鑒權(quán)(Client鑒權(quán)Server)
2、單向鑒權(quán)(Server鑒權(quán)Client)
證書文件
- .key:私有的密鑰
- .csr:證書簽名請求(證書請求文件),含有公鑰信息,certificate signing request的縮寫
- .crt:證書文件,certificate的縮寫
- .crl:證書吊銷列表,Certificate Revocation List的縮寫
- .pem:用于導(dǎo)出,導(dǎo)入證書時候的證書的格式,有證書開頭,結(jié)尾的格式
- .p12 或者 .pfx:用于實現(xiàn)存儲許多加密對象在一個單獨的文件中。通常用它來打包一個私鑰及有關(guān)的 X.509 證書,或者打包信任鏈的全部項目
證書生成
Windows上可使用Git自帶的OpenSSL生成,打開Git Bash
Linux本身自帶OpenSSL
根證書
1、 生成CA私鑰
openssl genrsa -out ca.key 2048
2、生成證書請求文件
openssl req -new -key ca.key -out ca.csr
需要輸入證書信息,參考如下:
Country Name (2 letter code) [AU]:CN
State or Province Name (full name) [Some-State]:GD
Locality Name (eg, city) []:GZ
Organization Name (eg, company) [Internet Widgits Pty Ltd]:HW
Organizational Unit Name (eg, section) []:DEV
Common Name (e.g. server FQDN or YOUR name) []:ROOT
Email Address []:xxx@sina.com
3、生成自簽名CA根證書(有效期365天)
openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt
服務(wù)端證書
1、生成私鑰,需要設(shè)定密碼
openssl genrsa -des3 -out server.key ***
2、生成證書請求文件,需要輸入上一步的密碼
openssl req -new -key server.key -out server.csr
需要輸入證書信息,最重要的一行是Common Name (e.g. server FQDN or YOUR name),您需要輸入與服務(wù)器關(guān)聯(lián)的域名,或者是您服務(wù)器的公共IP地址,參考如下:
Country Name (2 letter code) [AU]:CN
State or Province Name (full name) [Some-State]:GD
Locality Name (eg, city) []:GZ
Organization Name (eg, company) [Internet Widgits Pty Ltd]:HW
Organizational Unit Name (eg, section) []:DEV
Common Name (e.g. server FQDN or YOUR name) []:10.10.8.8
Email Address []:xxx@sina.com
3、生成服務(wù)端證書
openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key
這一步可能會提示錯誤:
解決辦法,使用如下命令創(chuàng)建文件:
mkdir -p demoCA/newcerts
touch demoCA/index.txt
touch demoCA/serial
echo “01” > demoCA/serial
客戶端證書
1、生成私鑰,需要設(shè)定密碼
openssl genrsa -des3 -out client.key 1024
2、生成證書請求文件,需要輸入上一步的密碼
openssl req -new -key client.key -out client.csr
注意輸入的信息不要和服務(wù)端證書的一樣,否則會報 ERROR:There is already a certificate for XXX 問題,比如我這里的Common Name不一樣:
Country Name (2 letter code) [AU]:CN
State or Province Name (full name) [Some-State]:GD
Locality Name (eg, city) []:GZ
Organization Name (eg, company) [Internet Widgits Pty Ltd]:HW
Organizational Unit Name (eg, section) []:DEV
Common Name (e.g. server FQDN or YOUR name) []:MY
Email Address []:xxx@sina.com
3、生成客戶端證書
openssl ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.key
證書導(dǎo)出
有時需要用到pem或pfx格式的證書,可以用以下方式生成
生成pem格式證書
cat client.crt client.key > client.pem
cat server.crt server.key > server.pem文章來源:http://www.zghlxwxcb.cn/news/detail-740994.html
生成pfx(p12)格式證書
openssl pkcs12 -export -in client.crt -inkey client.key -out client.p12
openssl pkcs12 -export -in server.crt -inkey server.key -out server.p12文章來源地址http://www.zghlxwxcb.cn/news/detail-740994.html
到了這里,關(guān)于OpenSSL生成CA證書的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!