溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

怎么在nginx中使用ssl模塊配置HTTPS訪問(wèn)

發(fā)布時(shí)間:2021-03-17 17:28:41 來(lái)源:億速云 閱讀:267 作者:Leah 欄目:服務(wù)器

怎么在nginx中使用ssl模塊配置HTTPS訪問(wèn)?很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。

操作步驟:

一、下載CA證書(shū)

1. 登錄阿里云,選擇“控制臺(tái)”-“產(chǎn)品與服務(wù)”,在“安全(云盾)”一欄中選擇“CA證書(shū)服務(wù)(數(shù)據(jù)安全)”。

怎么在nginx中使用ssl模塊配置HTTPS訪問(wèn)

怎么在nginx中使用ssl模塊配置HTTPS訪問(wèn)

2.在已經(jīng)購(gòu)買(mǎi)好的證書(shū)點(diǎn)擊“下載”,在新打開(kāi)的頁(yè)面上選擇“Nginx/Tengine”,點(diǎn)擊“下載證書(shū)for Nginx”。

怎么在nginx中使用ssl模塊配置HTTPS訪問(wèn)

怎么在nginx中使用ssl模塊配置HTTPS訪問(wèn)

二、在Nginx配置文件中安裝證書(shū)

文件說(shuō)明:1. 證書(shū)文件“證書(shū)名稱(chēng).pem‘',包含兩段內(nèi)容,請(qǐng)不要?jiǎng)h除任何一段內(nèi)容。2. 如果是證書(shū)系統(tǒng)創(chuàng)建的CSR,還包含:證書(shū)私鑰文件“證書(shū)名稱(chēng).key”。( 1 ) 在Nginx的配置文件所在的目錄下創(chuàng)建cert文件夾,并且將下載的全部文件拷貝到cert目錄中。如果申請(qǐng)證書(shū)時(shí)是自己創(chuàng)建的CSR文件,請(qǐng)將對(duì)應(yīng)的私鑰文件放到cert目錄下并且命名為“證書(shū)名稱(chēng).key”;

( 2 ) 打開(kāi) 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開(kāi)頭的屬性與證書(shū)配置有直接關(guān)系,其它屬性請(qǐng)結(jié)合自己的實(shí)際情況復(fù)制或調(diào)整) :

server {
  listen 443;
  server_name localhost;
  ssl on;
  root html;
  index index.html index.htm;
  ssl_certificate  cert/證書(shū)名稱(chēng).pem;
  ssl_certificate_key cert/證書(shū)名稱(chēng).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 ) 通過(guò) https 方式訪問(wèn)您的站點(diǎn),測(cè)試站點(diǎn)證書(shū)的安裝配置。 在瀏覽器中輸入https://dmsdbj.com,如下圖所示,則說(shuō)明配置成功。

怎么在nginx中使用ssl模塊配置HTTPS訪問(wèn)

安裝過(guò)程中遇見(jiàn)的問(wèn)題

錯(cuò)誤一:

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

解決方案:

出現(xiàn)這種錯(cuò)誤可能是兩種情況造成的:

情況一:配置文件格式不正確。

解決方法參考鏈接:https://www.jb51.net/article/141569.htm

情況二:ssl模塊并未被安裝

默認(rèn)情況下ssl模塊并未被安裝,如果要使用該模塊則需要在編譯nginx時(shí)指定–with-http_ssl_module參數(shù),這種情況也會(huì)導(dǎo)致錯(cuò)誤二的出現(xiàn)。

解決方案:

nginx缺少http_ssl_module模塊,編譯安裝的時(shí)候帶上--with-http_ssl_module配置就行了,但是現(xiàn)在的情況是我的nginx已經(jīng)安裝過(guò)了,怎么添加模塊,其實(shí)也很簡(jiǎn)單,往下看: 做個(gè)說(shuō)明:我的nginx的安裝目錄是/usr/local/nginx這個(gè)目錄,我的源碼包在/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)配置完成后,運(yùn)行make進(jìn)行編譯,千萬(wàn)不要進(jìn)行make install,否則就是覆蓋安裝。

mark

(4)然后備份原有已經(jīng)安裝好的nginx

cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak

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

nginx -s stop

如果關(guān)不掉,就直接Kill掉進(jìn)程。ps aux | grep 進(jìn)程名 查看進(jìn)程占用的PID號(hào)。

ps aux|grep nginx

怎么在nginx中使用ssl模塊配置HTTPS訪問(wèn)

殺掉查出來(lái)的PID就可以了,kill -9 PID 命令用于終止進(jìn)程。必須先kill掉root對(duì)應(yīng)的PID才能進(jìn)行下面的三個(gè)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)啟動(dòng)nginx

nginx

(8)通過(guò)下面的命令查看是否已經(jīng)加入成功。

nginx -V

錯(cuò)誤二:

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

怎么在nginx中使用ssl模塊配置HTTPS訪問(wèn)

解決方案:

出現(xiàn)這種情況的解決方案參考錯(cuò)誤一的第二種情況的解決方案即可。

錯(cuò)誤三:

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','r') error:2006D080:BIO routines:BIO_new_file:no such file) failed. Use force-quit

怎么在nginx中使用ssl模塊配置HTTPS訪問(wèn)

解決方案:

這可能是證書(shū)路徑存放的位置不正確導(dǎo)致的,而且只要寫(xiě)絕對(duì)路徑,就會(huì)報(bào)錯(cuò),無(wú)論windows還是linux。

將證書(shū)文件放到nginx.conf所在的目錄下即可。

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝您對(duì)億速云的支持。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI