1 openssl簡介
1.1 概述
OpenSSL 是一個安全套接字層密碼庫,囊括主要的密碼算法、常用的密鑰和證書封裝管理功能及SSL協議,並提供豐富的應用程序供測試或其它目的使用。
1.2 背景技術
1.3 安全信道特征
1.4 功能
1.5 密碼算法
對稱加密
非對稱加密
信息摘要
2 openssl常用命令
2.1 OpenSSl命令總覽
語法格式:
openssl command [ command_opts ] [ command_args ]
常用command:
version 用於查看版本信息
enc 用於加解密
ciphers 列出加密套件
genrsa 用於生成私鑰
rsa RSA密鑰管理(例如:從私鑰中提取公鑰)
req 生成證書簽名請求(CSR)
crl 證書吊銷列表(CRL)管理
ca CA管理(例如對證書進行簽名)
dgst 生成信息摘要
rsautl 用於完成RSA簽名、驗證、加密和解密功能
passwd 生成散列密碼
rand 生成偽隨機數
speed 用於測試加解密速度
s_client 通用的SSL/TLS客戶端測試工具
X509 X.509證書管理
verify X.509證書驗證
pkcs7 PKCS#7協議數據管理
2.2 應用
2.2.1 生成公私鑰范例一
(1)客戶證書密鑰構建(默認為私鑰密鑰):采用openssl的desc3加密算法來創建RSA密鑰,其中生成的des3密鑰長度為1024
# genrsa -des3 -out private_test.key 1024
(2)生成證書請求,通過私鑰和配置文件生成公鑰,公鑰有效期為10年(3650為天數)
# req -new -x509 -key private_test.key -days 3650 -out public_test.crt -config D:\software\openssl\openssl\openssl.cnf
(3)格式轉換:轉換成一個格式編碼為pkcs12的私鑰
# pkcs12 -export -name epayment2017 -in public_test.crt -inkey private_test.key -out private_test.pfx
(4)從已生成的商戶證書中提取公鑰串
# x509 -outform PEM -in public_test.crt -pubkey -out server.pubkey
2.2.2 生成公鑰和pkcs8格式私鑰
(1)生成rsa原始私鑰
# genrsa -out rsa_private_key.pem 1024
此時,我們可以在bin 文件夾中看到一個文件名為rsa_private_key.pem 的文件,用記事本方式打開它,可以看到-----BEGIN RSA PRIVATE KEY-----開頭,-----END RSA PRIVATEKEY-----結尾的沒有換行的字符串,這個就是原始的私鑰。
(2)RSA 私鑰轉換成PKCS8格式
# pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -ouform PEM -nocrypt
(3)生成公鑰
# rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
3 證書格式轉換
3.1 證書轉換
# PKCS轉換為PEM > openssl pkcs12 -in myserver.pfx -out myserver.pem -nodes # PEM轉換為DER > openssl x509 -outform der -in myserver.pem -out myserver.[der|crt] # PEM提取KEY > openssl RSA -in myserver.pem -out myserver.key # DER轉換為PEM > openssl x509 -inform der -in myserver.[cer|crt] -out myserver.pem # PEM轉換為PKCS > openssl pkcs12 -export -inkey myserver.key -in myserver.pem -out myserver.pfx -certfile ca.crt
> openssl pkcs12 -export -inkey www.mysite.com.key -in www.mysite.com.pem -passin pass:123456 -passout pass:123456 -out www.mysite.com.p12
3.2 查看證書內容
# 查看KEY信息 $ openssl rsa -noout -text -in myserver.key # 查看CSR信息 $ openssl req -noout -text -in myserver.csr # 查看證書信息 $ openssl x509 -noout -text -in ca.pem # 查看證書公鑰對應的RSA模 $ openssl x509 -in mysite.pem -noout -modulus # 查看證書subject項
$ openssl x509 -in mysite.pem -noout -subject -nameopt multiline # 查看證書issuer項
$ openssl x509 -in mysite.pem -noout -issuer -nameopt multiline # 檢查證書用途 $ openssl x509 -purpose -noout -in 192.168.200.7.cer
4 OpenSSL下載方式(二選一)
1、Windows用戶開發者可以在OpenSSL官方網站下載Windows的OpenSSL安裝包進行安裝。下載路徑:https://www.openssl.org/source/
2、簡易安裝包下載地址:https://files.cnblogs.com/files/xq1314/openssl.zip
(1)雙擊bin目錄下的openssl.exe執行文件
參考:
1、https://baike.baidu.com/item/openssl/5454803?fr=aladdin#5
2、http://blog.csdn.net/baidu_36649389/article/details/54379935