openssl 生成自簽證書及查看證書細節


轉自: https://www.cnblogs.com/threegun/p/7130985.html

生成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 -in my.csr -noout -text

 

轉自:https://www.cnblogs.com/gradven/p/5353256.html

 

1.首先要生成服務器端的私鑰(key文件):

   命令:

openssl genrsa -des3 -out server.key 1024

運行時會提示輸入密碼,此密碼用於加密key文件(參數des3便是指加密算法,當然也可以選用其他你認為安全的算法.),以后每當需讀取此文件(通過openssl提供的命令或API)都需輸入口令

 

2. 對服務端生成CSR和key

   命令:

openssl req -new -key server.key -out server.csr -config /etc/pki/tls/openssl.cnf

生成Certificate Signing Request(CSR),生成的csr文件交給CA簽名后形成服務端自己的證書.屏幕上將有提示,依照其指示一步一步輸入要求的個人信息即可.

 

3.對客戶端也作同樣的命令生成key及csr文件:

 命令:

openssl genrsa -des3 -out client.key 1024

openssl req -new -key client.key -out client.csr -config /etc/pki/tls/openssl.cnf

 

4.CSR文件必須有CA的簽名才可形成證書.可將此文件發送到verisign等地方由它驗證,需要交費用,這里說下怎么自己做CA。

  命令:

openssl req -new -x509 -keyout ca.key -out ca.crt -config /etc/pki/tls/openssl.cnf

5.用生成的CA的證書為剛才生成的server.csr,client.csr文件簽名:

命令:

openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config /etc/pki/tls/openssl.cnf

openssl ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.key -config /etc/pki/tls/openssl.cnf

 

遇到的問題:

如果提示沒有/etc/pki/CA/index.txt 或者serial文件,那么就按照路徑新建文件即可。

 

3078239980:error:0D066096:asn1 encoding routines:a2i_ASN1_INTEGER:short line:f_int.c:215:
提示error while loading serial number,一般是因為serial文件中沒有賦初值
解決辦法
[root@test1 ~]#cd /etc/pki/CA
[root@test1 CA]# echo "00" >serial
[root@test1 CA]# cat serial
00

還有一個問題在CA簽名時,最后出現failed to update database錯誤

遇到這個錯誤,只需要清空/etc/pki/CA/index.txt的內容再簽發就可以成功了。

 

修改CA的一些配置文件

vi /etc/pki/tls/openssl.cnf


default_days = 3650 修改證書有效期

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM