首頁 運維 Nginx nginx怎麼使用ssl模組配置支援HTTPS訪問

nginx怎麼使用ssl模組配置支援HTTPS訪問

May 21, 2023 pm 06:10 PM
nginx ssl https

背景:

專案開發中用到了微信小程序,但是伺服器配置url必須是https,所以需要透過配置nginx的ssl模組來支援https訪問,也就是說,要做一個網站網域為dmsdbj.com 要求透過https://dmsdbj.com進行存取.

ssl英文名為secure socket layer,安全通訊端層。 ssl是一種數位證書,它使用ssl協定在瀏覽器和web server之間建立一條安全通道,資料資訊在client與server之間的安全傳輸.

前提:

1. 設定ssl模組首先需要ca證書,ca證書可以自己手動頒發也可以在阿里雲申請,本人在阿里雲上申請的證書。 (手動頒發可參考文章底部連結)

2. 預設情況下ssl模組並未被安裝,如果要使用該模組則需要在編譯nginx時指定–with-http_ssl_module參數.

阿里雲購買ca證書

操作步驟:

一、下載ca證書

1. 登入阿里雲,選擇“控制台”-“產品與服務”,在“安全(雲盾)”一欄中選擇“ca證書服務(資料安全)”。

nginx怎麼使用ssl模組配置支援HTTPS訪問

nginx怎麼使用ssl模組配置支援HTTPS訪問

2.在已經購買好的憑證點擊“下載”,在新開啟的頁面上選擇“nginx/tengine”,點選「下載憑證for nginx」。

nginx怎麼使用ssl模組配置支援HTTPS訪問

nginx怎麼使用ssl模組配置支援HTTPS訪問

二、在nginx設定檔中安裝憑證

檔說明:1.憑證檔案「憑證名稱.pem'',包含兩段內容,請不要刪除任何一段內容。2. 如果是憑證系統建立的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。

nginx -s reload
登入後複製

( 5 ) 透過https 方式存取您的站點,測試站點憑證的安裝配置。在瀏覽器中輸入 https://dmsdbj.com,如下圖所示,則說明配置成功。

nginx怎麼使用ssl模組配置支援HTTPS訪問

安裝過程中遇見的問題

#錯誤一:

nginx: [emerg ] unknown directive "ssl" in /usr/local/nginx/conf/nginx.conf:151

解決方案:

出現這種錯誤可能是兩種情況造成的:

情況一:設定檔格式不正確。

解決方法參考連結:

情況二:ssl模組並未被安裝

預設情況下ssl模組並未被安裝,如果要使用該模組則需要在編譯nginx時指定–with-http_ssl_module參數,這種情況也會導致錯誤二的出現。

解決方案:

nginx缺少http_ssl_module模組,編譯安裝的時候帶上--with-http_ssl_module配置就行了,但是現在的情況是我的nginx已經安裝過了,怎麼添加模組,其實也很簡單,往下看: 做個說明:我的nginx的安裝目錄是/usr/local/nginx這個目錄,我的源碼包在/usr/local/src/nginx-1.3.6目錄

#(1)切換到源碼包:

cd /root/nginx-1.13.6
登入後複製

(2)設定資訊:

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
登入後複製

(3)設定完成後,執行make進行編譯,千萬不要進行make install,否則就是覆寫安裝。

mark
登入後複製

(4)然後備份原有已經安裝好的nginx

cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
登入後複製

#(5)停止nginx,正常指令直接nginx -s stop就可以

nginx -s stop
登入後複製

如果關不掉,就直接kill掉進程。 ps aux | grep 進程名 查看進程所佔用的pid號。

ps aux|grep nginx
登入後複製

nginx怎麼使用ssl模組配置支援HTTPS訪問

殺掉查出來的pid就可以了,kill -9 pid 指令用來終止進程。必須先kill掉root對應的pid才能進行下面的三個nobody的pid。

kill -9 10922
kill -9 28276
kill -9 28277
kill -9 28278
登入後複製

(6)將剛剛編譯好的nginx覆寫原來的nginx

cp ./objs/nginx /usr/local/nginx/sbin/
登入後複製

(7)啟動nginx

nginx
登入後複製

(8)透過下面的指令來查看是否已經加入成功。

nginx -v
登入後複製

錯誤二:

nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf:148

nginx怎麼使用ssl模組配置支援HTTPS訪問

nginx怎麼使用ssl模組配置支援HTTPS訪問

############################################################################################################################ #解決方案:######出現這種情況的解決方案參考錯誤一的第二種情況的解決方案即可。 #########錯誤三:############stoping nginx... nginx: [emerg] bio_new_file("/usr/local/nginx/conf/cert/214291778530222. pem") failed (ssl: error:02001002:system library:fopen:no such file or directory:fopen('/usr/local/nginx/conf/cert/214291778530222.pem','2060 routines:bio_new_file:no such file) failed. use force-quit##################解決方案:######這可能是憑證路徑存放的位置不正確導致的,而​​且只要寫絕對路徑,就會報錯,無論windows還是linux。 ######將憑證檔案放到nginx.conf所在的目錄下即可。 ###

以上是nginx怎麼使用ssl模組配置支援HTTPS訪問的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1321
25
PHP教程
1269
29
C# 教程
1249
24
nginx在windows中怎麼配置 nginx在windows中怎麼配置 Apr 14, 2025 pm 12:57 PM

如何在 Windows 中配置 Nginx?安裝 Nginx 並創建虛擬主機配置。修改主配置文件並包含虛擬主機配置。啟動或重新加載 Nginx。測試配置並查看網站。選擇性啟用 SSL 並配置 SSL 證書。選擇性設置防火牆允許 80 和 443 端口流量。

docker怎麼啟動容器 docker怎麼啟動容器 Apr 15, 2025 pm 12:27 PM

Docker 容器啟動步驟:拉取容器鏡像:運行 "docker pull [鏡像名稱]"。創建容器:使用 "docker create [選項] [鏡像名稱] [命令和參數]"。啟動容器:執行 "docker start [容器名稱或 ID]"。檢查容器狀態:通過 "docker ps" 驗證容器是否正在運行。

docker容器名稱怎麼查 docker容器名稱怎麼查 Apr 15, 2025 pm 12:21 PM

可以通過以下步驟查詢 Docker 容器名稱:列出所有容器(docker ps)。篩選容器列表(使用 grep 命令)。獲取容器名稱(位於 "NAMES" 列中)。

怎麼查看nginx是否啟動 怎麼查看nginx是否啟動 Apr 14, 2025 pm 01:03 PM

確認 Nginx 是否啟動的方法:1. 使用命令行:systemctl status nginx(Linux/Unix)、netstat -ano | findstr 80(Windows);2. 檢查端口 80 是否開放;3. 查看系統日誌中 Nginx 啟動消息;4. 使用第三方工具,如 Nagios、Zabbix、Icinga。

docker怎麼創建容器 docker怎麼創建容器 Apr 15, 2025 pm 12:18 PM

在 Docker 中創建容器: 1. 拉取鏡像: docker pull [鏡像名] 2. 創建容器: docker run [選項] [鏡像名] [命令] 3. 啟動容器: docker start [容器名]

nginx怎麼配置雲服務器域名 nginx怎麼配置雲服務器域名 Apr 14, 2025 pm 12:18 PM

在雲服務器上配置 Nginx 域名的方法:創建 A 記錄,指向雲服務器的公共 IP 地址。在 Nginx 配置文件中添加虛擬主機塊,指定偵聽端口、域名和網站根目錄。重啟 Nginx 以應用更改。訪問域名測試配置。其他注意事項:安裝 SSL 證書啟用 HTTPS、確保防火牆允許 80 端口流量、等待 DNS 解析生效。

nginx怎麼查版本 nginx怎麼查版本 Apr 14, 2025 am 11:57 AM

可以查詢 Nginx 版本的方法有:使用 nginx -v 命令;查看 nginx.conf 文件中的 version 指令;打開 Nginx 錯誤頁,查看頁面的標題。

nginx服務器掛了怎麼辦 nginx服務器掛了怎麼辦 Apr 14, 2025 am 11:42 AM

當 Nginx 服務器宕機時,可執行以下故障排除步驟:檢查 nginx 進程是否正在運行。查看錯誤日誌以獲取錯誤消息。檢查 nginx 配置語法正確性。確保 nginx 具有訪問文件所需的權限。檢查文件描述符打開限制。確認 nginx 正在偵聽正確的端口。添加防火牆規則以允許nginx流量。檢查反向代理設置,包括後端服務器可用性。如需進一步幫助,請聯繫技術支持。

See all articles