openssl 生成自簽證書及檢視證書細節
生成X509格式的CA自簽名證書
# openssl req -new -x509 -keyout ca.key -out ca.crt
生成服務端的私鑰(key檔案)及csr檔案
# openssl genrsa -des3 -out server.key 1024
# openssl req -new -key server.key -out server.csr
生成客戶端的私鑰(key檔案)及csr檔案
# openssl genrsa -des3 -out client.key 1024 # openssl req -new -key client.key -out client.csr
用生成的CA的證書為剛才生成的server.csr,client.csr檔案簽名
# openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key
# openssl ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.key
生成p12格式證書
# openssl pkcs12 -export -inkey client.key -in client.crt -out client.pfx # openssl pkcs12 -export -inkey server.key -in server.crt -out server.pfx
生成pem格式證書
有時需要用到pem格式的證書,可以用以下方式合併證書檔案(crt)和私鑰檔案(key)來生成
# cat client.crt client.key> client.pem
# cat server.crt server.key > server.pem
PFX檔案轉換為X509證書檔案和RSA金鑰檔案
# openssl pkcs12 -in server.pfx -nodes -out server.pem # openssl rsa -in server.pem -out server2.key # openssl x509 -in server.pem -out server2.crt
PEM--DER/CER(BASE64--DER編碼的轉換)
# openssl x509 -outform der -in server.pem -out server.cer
這樣生成服務端證書:ca.crt, server.key, server.crt, server.pem, server.pfx,
客戶端證書:ca.crt, client.key, client.crt, client.pem, client.pfx
openssl x509部分命令
打印出證書的內容:
openssl x509 -in cert.pem -noout -text
打印出證書的系列號
openssl x509 -in cert.pem -noout -serial
打印出證書的擁有者名字
openssl x509 -in cert.pem -noout -subject
以RFC2253規定的格式打印出證書的擁有者名字
openssl x509 -in cert.pem -noout -subject -nameopt RFC2253
在支援UTF8的終端一行過打印出證書的擁有者名字
openssl x509 -in cert.pem -noout -subject -nameopt oneline -nameopt -escmsb
打印出證書的MD5特徵引數
openssl x509 -in cert.pem -noout -fingerprint
打印出證書的SHA特徵引數
openssl x509 -sha1 -in cert.pem -noout -fingerprint
把PEM格式的證書轉化成DER格式
openssl x509 -in cert.pem -inform PEM -out cert.der -outform DER
把一個證書轉化成CSR
openssl x509 -x509toreq -in cert.pem -out req.pem -signkey key.pem
給一個CSR進行處理,頒發字簽名證書,增加CA擴充套件項
openssl x509 -req -in careq.pem -extfile openssl.cnf -extensions v3_ca -signkey key.pem -out cacert.pem
給一個CSR簽名,增加使用者證書擴充套件項
openssl x509 -req -in req.pem -extfile openssl.cnf -extensions v3_usr -CA cacert.pem -CAkey key.pem -CAcreateserial
檢視csr檔案細節:
openssl req -i