背景
http在公網傳輸的時候,都是明文的,因此考慮加個ssl證書。
創建ssl證書
1、創建密鑰
使用openssl工具生成一個RSA私鑰
openssl genrsa -des3 -out server.key 2048
注意:生成私鑰,需要提供一個至少4位,最多1023位的密碼。
2、生成CSR(證書籤名請求)
openssl req -new -key server.key -out server.csr
說明:需要依次輸入國家,地區,城市,組織,組織單位,Common Name和Email。其中Common Name,可以寫自己的名字或者域名,如果要支持https,Common Name應該與域名保持一致,否則會引起瀏覽器警告。
可以將證書發送給證書頒發機構(CA),CA驗證過請求者的身份之後,會出具籤名證書,需要花錢。另外,如果只是內部或者測試需求,也可以使用OpenSSL實現自籤名。
3、刪除密鑰中的密碼
openssl rsa -in server.key -out server.key
說明:如果不刪除密碼,在應用加載的時候會出現輸入密碼進行驗證的情況,不方便自動化部署。
4、生成自籤名證書
內部或者測試使用,只要忽略證書提醒就可以了。
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
5、生成pem格式的公鑰
有些服務,需要有pem格式的證書才能正常加載,可以用下面的命令:
openssl x509 -in server.crt -out server.pem -outform PEM
總結
自籤名的證書,不被瀏覽器信任,適合內部或者測試使用。生產環境老老實實去買證書吧。當然了,不限成本的請隨意。