国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網(wǎng)站 > Nginx > 正文

nginx使用ssl模塊配置支持HTTPS訪問步驟

2024-08-30 12:23:02
字體:
供稿:網(wǎng)友
  背景:
  項目開發(fā)中用到了微信小程序,但是服務器配置URL必須是HTTPS,所以需要通過配置nginx的SSL模塊來支持HTTPS訪問,也就是說,要做一個網(wǎng)站域名為 dmsdbj.com 要求通過HTTPS://dmsdbj.com進行訪問.
  SSL英文名為Secure Socket Layer,安全套接字層。SSL是一種數(shù)字證書,它使用ssl協(xié)議在瀏覽器和web server之間建立一條安全通道,數(shù)據(jù)信息在client與server之間的安全傳輸.
  前提:
  1. 配置SSL模塊首先需要CA證書,CA證書可以自己手動頒發(fā)也可以在阿里云申請,本人在阿里云上申請的證書。(手動頒發(fā)可參考文章底部鏈接)
  2. 默認情況下ssl模塊并未被安裝,如果要使用該模塊則需要在編譯nginx時指定–with-http_ssl_module參數(shù).
  阿里云購買CA證書
  操作步驟:
  一、下載CA證書
  1. 登錄阿里云,選擇“控制臺”-“產(chǎn)品與服務”,在“安全(云盾)”一欄中選擇“CA證書服務(數(shù)據(jù)安全)”。
  2.在已經(jīng)購買好的證書點擊“下載”,在新打開的頁面上選擇“Nginx/Tengine”,點擊“下載證書for Nginx”。
  二、在Nginx配置文件中安裝證書
  文件說明:1. 證書文件“證書名稱.pem‘',包含兩段內(nèi)容,請不要刪除任何一段內(nèi)容。2. 如果是證書系統(tǒng)創(chuàng)建的CSR,還包含:證書私鑰文件“證書名稱.key”。( 1 ) 在Nginx的配置文件所在的目錄下創(chuàng)建cert文件夾,并且將下載的全部文件拷貝到cert目錄中。如果申請證書時是自己創(chuàng)建的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開頭的屬性與證書配置有直接關(guān)系,其它屬性請結(jié)合自己的實際情況復制或調(diào)整) :
  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: [emerg] unknown directive "ssl" in /usr/local/nginx/conf/nginx.conf:151
  解決方案:
  出現(xiàn)這種錯誤可能是兩種情況造成的:
  情況一:配置文件格式不正確。
  解決方法參考鏈接:https://www.jb51.net/article/141569.htm
  情況二:ssl模塊并未被安裝
  默認情況下ssl模塊并未被安裝,如果要使用該模塊則需要在編譯nginx時指定–with-http_ssl_module參數(shù),這種情況也會導致錯誤二的出現(xiàn)。
  解決方案:
  nginx缺少http_ssl_module模塊,編譯安裝的時候帶上--with-http_ssl_module配置就行了,但是現(xiàn)在的情況是我的nginx已經(jīng)安裝過了,怎么添加模塊,其實也很簡單,往下看: 做個說明:我的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)然后備份原有已經(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掉進程。ps aux | grep 進程名 查看進程占用的PID號。
  ps aux|grep nginx
  殺掉查出來的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)通過下面的命令查看是否已經(jīng)加入成功。
  nginx -V
  錯誤二:
  nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf:148
  解決方案:
  出現(xiàn)這種情況的解決方案參考錯誤一的第二種情況的解決方案即可。
  錯誤三:
  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
  解決方案:
  這可能是證書路徑存放的位置不正確導致的,而且只要寫絕對路徑,就會報錯,無論windows還是linux。
  將證書文件放到nginx.conf所在的目錄下即可。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 河南省| 星子县| 四子王旗| 诸暨市| 永胜县| 安泽县| 安吉县| 沁源县| 长沙市| 济阳县| 长垣县| 三穗县| 太保市| 汉沽区| 石阡县| 方城县| 古丈县| 饶平县| 灵川县| 泰来县| 阿拉尔市| 贵德县| 湖北省| 阳原县| 开封市| 延津县| 祁阳县| 阿荣旗| 大埔县| 财经| 西乌珠穆沁旗| 龙口市| 贺州市| 九寨沟县| 新龙县| 涟源市| 余庆县| 临江市| 阳新县| 金溪县| 简阳市|