openssl x509 -inform PEM -outform DER -in ClientCA.crt -out ClientCA.cer
看結果訊息
[jonathan@pd920 certs]$ openssl x509 -inform PEM -outform DER -in ClientCA.crt -out ClientCA.cer
openssl x509 -inform DER -in GCA.cer -out GCA.crt
看結果訊息
[jonathan@pd920 gca]$ openssl x509 -inform DER -in GCA.cer -out GCA.crt
openssl crl -in trysoft.crl -outform DER -out trysoft_der.crl
wget http://gca.nat.gov.tw/repository/GCA4/CRL/complete.crl
wget http://gca.nat.gov.tw/repository/Certs/GCA.cer
openssl crl -inform DER -in complete.crl -text -CAfile GCA.crt -out gca_crl.txt
結果訊息
[jonathan@pd920 gca]$ openssl crl -inform DER -in complete.crl -text -CAfile GCA.crt -out gca_crl.txt
verify OK
[jonathan@pd920 gca]$ more gca_crl.txt
Certificate Revocation List (CRL):
Version 2 (0x1)
Signature Algorithm: sha1WithRSAEncryption
Issuer: /C=TW/O=\xE8\xA1\x8C\xE6\x94\xBF\xE9\x99\xA2/OU=\xE6\x94\xBF\xE5\xBA\x9C\xE6\x86\x91
\xE8\xAD\x89\xE7\xAE\xA1\xE7\x90\x86\xE4\xB8\xAD\xE5\xBF\x83
Last Update: Aug 21 16:00:00 2008 GMT
Next Update: Sep 21 16:00:00 2008 GMT
CRL extensions:
:
:
要先取得該憑證的 root 憑證 RootCA.crt 與廢止清冊 CRL.crt
如果有中繼憑證簽發,也必須取得所有中繼憑證 Exp. Mid1CA.crt , Mid2CA.crt
依據順序產生憑證 chain 檔 chain.crt (PEM 格式)
語法cat RootCA.crt > chain.crt
cat Mid1CA.crt >> chain.crt
cat Mid2CA.crt >> chain.crt
cat CRL.crt >> chain.crt
將 ClientCA.cer 由 DER 轉成 PEM 格式
語法
openssl x509 -inform DER -in ClientCA.cer -out ClientCA.crt
執行以下語法來檢驗憑證
語法
openssl verify -CAfile chain.crt -crl_check ClientCA.crt
如果沒問題會
出現
[jonathan@pd920 certs]$ openssl verify -CAfile chain.crt -crl_check ClientCA.crt
ClientCA.crt: OK
如果憑證存在廢止清冊內會
出現
[jonathan@pd920 certs]$ openssl verify -CAfile chain.crt -crl_check ClientCA.crt
ClientCA.crt: /C=TW/ST=Taiwan/L=Taipei/O=Test Corp./CN=Test Corp./emailAddress=test@ichiayi.com
error 23 at 0 depth lookup:certificate revoked
http://ssorc.tw/rewrite.php/read-42.html 主要內容產生 private key 私密金鑰 及 憑證 cert (365 天, 1024 bits)
openssl req -new -x509 -keyout server.key -out server.crt -days 3650 -newkey rsa:1024
-nodes : 可以不加密碼
-subj '/C=TW/ST=Taiwan/L=Taipei/CN=ssorc.tw/emailAddress=cross@ssorc.tw' : 個人資訊,加的話不會出用提示的方式
產生私密金鑰(private key) & 憑證要求(certificate signing request = csr)
openssl req -new -keyout server.key -out server.csr -days 365 -newkey rsa:1024
如果要引用已有 private key 了來產生憑證要求
openssl req -new -key server.key -out server.csr
簽署 csr 產生 crt
openssl x509 -in server.csr -out server.crt -req -text -signkey server.key
CA 簽發
openssl ca -policy policy_anything -out server.crt -infiles server.csr
檢查簽署
openssl req -in server.csr -noout -verify -key server.key
檢查憑證
openssl verify server.crt
查看 csr 內容
openssl req -in server.csr -noout -text
-noout : 不輸出BEGIN CERTIFICATE REQUEST
查看 csr 內容並檢查
openssl req -in server.csr -noout -text -verify
查看 crt 內容
openssl x509 -in server.crt -text
其它查看的參數
-issuer
-subject
-dates
產生 Windows用的 p12
openssl pkcs12 -export -in server.crt -inkey server.key -out windows.p12
如果反過來的話
openssl pkcs12 -in windows.p12 -out server.crt
windows DER
openssl x509 -in cacert.pem -out cacert.der -outform DER
產生 public key
openssl rsa -in server.key -pubout
產生 rsa key
openssl genrsa
openssl genrsa 1024
openssl genrsa 1024 -out server.rsa.key
文件加密、解密
明文文件(plain text) :test.txt
密文文件(cipher text):test.msg
文件加密
echo "this is a test file" > test.txt
openssl smime -encrypt -in test.txt -out test.msg cert.pem
文件解密
openssl smime -decrypt -in test.msg -recip cert.pem -inkey key.pem
驗證簽章(Verify Signature)
openssl smime -sign -inkey key.pem -signer cert.pem -in test.txt -out test.sig
openssl smime -verif -in test.sig -signer cert.pem -out test2.txt -CAfile cacert.pem
測試 TLS
openssl s_client -CAfile cacert.pem -connect localhost:993
openssl s_client -connect remote.host:25 -starttls smtp
openssl s_time -connect remote_host:443
Benchmark
openssl speed
openssl speed rsa
ref: http://www.madboa.com/geek/openssl/
ref: http://www.ascc.net/nl/91/1819/02.txt
ref: http://www.study-area.org/tips/certs/certs.html