自行頒發不受瀏覽器信任的ssl憑證
#手動頒發
xshell登入伺服器,使用openssl產生rsa金鑰及憑證
# 生成一个rsa密钥 $ openssl genrsa -des3 -out tfjybj.key 1024 # 拷贝一个不需要输入密码的密钥文件 $ openssl rsa -in dmsdbj.key -out tfjybj_nopass.key # 生成一个证书请求 $ openssl req -new -key tfjybj.key -out tfjybj.csr
這裡會提示輸入省份、城市、網域等訊息,email得是網域名稱後綴。這樣就產生一個csr文件,提交給ssl提供者的時候就是這個csr文件。
(這裡由於我沒有截圖,所以從網路上找了一個圖片,需要替換的是下面的33iq,換成tfjybj)
中間輸入密碼的時候,沒有什麼顯示,不過就那麼輸入就好
# 自己签发证书 $ openssl x509 -req -days 365 -in tfjybj.csr -signkey tfjybj.key -out tfjybj.crt
把產生的憑證放到nginx設定檔同級目錄;
nginx配置
編輯nginx設定檔nginx.conf,加上https協定
server { server_name tfjybj.com; listen 443; ssl on; ssl_certificate /usr/local/nginx/conf/tfjybj.crt; ssl_certificate_key /usr/local/nginx/conf/tfjybj_nopass.key; # 若ssl_certificate_key使用tfjybj.key,则每次启动nginx服务器都要求输入key的密码。 (开始我不知道,纳闷为啥启动nginx、关闭nginx都要输入密码) }
重啟nginx
自己頒發的ssl憑證能夠實現加密傳輸功能,但瀏覽器不信任,會給予提示:
#透過第三方頒發憑證–阿里雲
頒發憑證
登入阿里雲管理控制台,【雲端盾牌】選單選擇【憑證服務】,選擇購買憑證;
我弄得免費版的做的測試,申請之後,經過一兩天的審核,然後就可以下載證書了。下載解壓縮後是兩個文件,一個key結尾,私鑰,一個是pem結尾,是公鑰;
設定nginx
##文件說明:證書文件”申請的證書名字.pem”,包含兩段內容,請不要刪除任何一段內容。 如果是憑證系統建立的csr,也包含:憑證私密金鑰檔案」申請的憑證名字.key」。 ( 1 ) 在nginx的安裝目錄下建立cert目錄,並且將下載的全部檔案拷貝到cert目錄中。如果申請憑證時是自己建立的csr文件,請將對應的私鑰檔案放到cert目錄下並且命名為」申請的憑證名字.key」;( 2 ) 開啟nginx 安裝目錄下conf目錄中的nginx.conf 文件,找到:
# https server # #server { # listen 443; # server_name localhost; # ssl on; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # ssl_session_timeout 5m; # ssl_protocols sslv2 sslv3 tlsv1; # ssl_ciphers all:!adh:!export56:rc4+rsa:+high:+medium:+low:+sslv2:+exp; # ssl_prefer_server_ciphers on; # location / { # # #} #}
server { listen 443; server_name localhost; ssl on; root html; index index.html index.htm; ssl_certificate cert/申请的证书名字.pem; ssl_certificate_key cert/申请的证书名字.key; ssl_session_timeout 5m; ssl_ciphers ecdhe-rsa-aes128-gcm-sha256:ecdhe:ecdh:aes:high:!null:!anull:!md5:!adh:!rc4; ssl_protocols tlsv1 tlsv1.1 tlsv1.2; ssl_prefer_server_ciphers on; location / { root html; index index.html index.htm; } }
以上是Nginx怎麼設定SSL憑證部署HTTPS網站的詳細內容。更多資訊請關注PHP中文網其他相關文章!