# OpenSSL自簽憑證 * 利用openSSL自簽憑證 >https://blog.codebar.tw/self-signed-certificate-by-using-openssl-ec22a0257a28 --- ## 步驟整理如下_請記好提示出現時自己設定的密碼 1. 建立簡單的 CA! * 為我們的 CA 產生一把私鑰 ```bash= openssl genrsa -aes256 -out ca.key 4096 ``` * 用這把私鑰產生一份自我簽署的憑證 ```bash= 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 ``` 2. 產生 Server/Client 的私鑰和 CSR(憑證簽署要求)_以下用Server為例 * 為Server產生一把私鑰 ```bash= openssl genrsa -aes256 -out server.key 4096 ``` * 建立CSR(憑證簽署要求) ```bash= 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 ``` 3. 發憑證啦 * 把剛剛產生的 CSR 丟給 CA 簽署,就可以拿憑證ㄌ ```bash= openssl x509 -req -CAcreateserial -days 3650 -sha256 \ -CA ca.crt -CAkey ca.key \ -in server.csr \ -out server.crt ``` 4. 驗證拿到的憑證 * 可以這個 verify 這個參數來驗證這個憑證是否為該 CA 所發的 ```bash= openssl verify -CAfile ca.crt server.crt ``` 如果輸出訊息是: ```bash= error 18 at 0 depth lookup:self signed certificate ``` 代表 CA 和 user 的 Common Name 重複了,請使用不同的 Common Name。