Try   HackMD

OpenSSL自簽憑證

  • 利用openSSL自簽憑證

https://blog.codebar.tw/self-signed-certificate-by-using-openssl-ec22a0257a28


步驟整理如下_請記好提示出現時自己設定的密碼

  1. 建立簡單的 CA!
  • 為我們的 CA 產生一把私鑰
openssl genrsa -aes256 -out ca.key 4096
  • 用這把私鑰產生一份自我簽署的憑證
openssl req -new -x509 -days 365 -sha256 \ -subj "/C=TW/ST=Tainan/O=Sinpao/OU=PIDS/CN=yang/emailAddress=yang@sinpao.com.tw" \ -key ca.key \ -out ca.crt
  1. 產生 Server/Client 的私鑰和 CSR(憑證簽署要求)_以下用Server為例
  • 為Server產生一把私鑰
openssl genrsa -aes256 -out server.key 4096
  • 建立CSR(憑證簽署要求)
openssl req -new -sha256 -key server.key \ -subj "/C=TW/ST=Tainan/O=Sinapo/OU=PIDS/CN=PIDS.yang/emailAddress=enoladne@yahoo.com.tw" \ -out server.csr
  1. 發憑證啦
  • 把剛剛產生的 CSR 丟給 CA 簽署,就可以拿憑證ㄌ
openssl x509 -req -CAcreateserial -days 3650 -sha256 \ -CA ca.crt -CAkey ca.key \ -in server.csr \ -out server.crt
  1. 驗證拿到的憑證
  • 可以這個 verify 這個參數來驗證這個憑證是否為該 CA 所發的
openssl verify -CAfile ca.crt server.crt

如果輸出訊息是:

error 18 at 0 depth lookup:self signed certificate

代表 CA 和 user 的 Common Name 重複了,請使用不同的 Common Name。