首頁  >  文章  >  運維  >  Nginx怎麼設定SSL憑證部署HTTPS網站

Nginx怎麼設定SSL憑證部署HTTPS網站

王林
王林轉載
2023-05-12 12:31:121219瀏覽

自行頒發不受瀏覽器信任的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)

中間輸入密碼的時候,沒有什麼顯示,不過就那麼輸入就好

Nginx怎麼設定SSL憑證部署HTTPS網站

# 自己签发证书
$ 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憑證能夠實現加密傳輸功能,但瀏覽器不信任,會給予提示:

Nginx怎麼設定SSL憑證部署HTTPS網站

#透過第三方頒發憑證–阿里雲

頒發憑證

登入阿里雲管理控制台,【雲端盾牌】選單選擇【憑證服務】,選擇購買憑證;

我弄得免費版的做的測試,申請之後,經過一兩天的審核,然後就可以下載證書了。下載解壓縮後是兩個文件,一個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 / {
#
#
#}
#}

( 3 ) 將其修改為(以下屬性中ssl開頭的屬性與證書配置有直接關係,其它屬性請結合自己的實際情況複製或調整) :

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; 
} 
}

儲存退出。

( 4 )重啟 nginx。

( 5 ) 透過 https 方式存取您的網站

以上是Nginx怎麼設定SSL憑證部署HTTPS網站的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除