1. 程式人生 > >將http升級為https nginx伺服器

將http升級為https nginx伺服器

我要將http://wechat.mine.com升級為https://wechat.mine.com 首先進入阿里雲–控制檯–域名,點選要升級的域名,在基本資訊那裡點選“免費開啟ssl證書” 在這裡插入圖片描述在這裡插入圖片描述 如果是企業用建議選擇“DV萬用字元證書”,這個安全性肯定比免費的高。個人的我覺得免費的就夠了。 我想申請wechat.mine.com,那麼在輸入框中填wechat,然後點選確定即可。 在這裡插入圖片描述 到ssl證書控制檯下載nginx證書,還有其他版本。 在這裡插入圖片描述

  1. 如果安裝過nginx並且安裝了openssl

將壓縮包解壓到nginx所在目錄,開啟nginx/conf/nginx.conf 找到如下程式碼,原來是註釋掉的,去掉“#”

 # HTTPS server
    
    server {
       listen       443 ssl;
       server_name  wechat.mine.com;
       ssl on;
       ssl_certificate     證書絕對路徑.crt;    如/usr/local/cert/檔名稱.crt
       ssl_certificate_key   證書絕對路徑.key;  如/usr/local/cert/檔名稱.key

       ssl_session_cache    shared:SSL:1m;
       ssl_session_timeout  5m;

       ssl_ciphers  HIGH:!aNULL:!MD5;
       ssl_prefer_server_ciphers  on;

       location / {
           proxy_pass  mine.com:70;
        #    root   html;
        #    index  index.html index.htm;
       }
    }

驗證配置是否正確/usr/local/nginx/sbin/nginx -t(假設nginx安裝在/usr/local 下);

  1. 沒有安裝nginx,安裝參考 安裝,然後步驟與本文1一致。
  2. 安裝了nginx但沒有安裝OpenSSL 假設nginx安裝在/usr/local/ 輸入/usr/local/nginx/sbin/nginx -V ,回車後,輸入 ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module 再次輸入/usr/local/nginx/sbin/nginx -V ,configure arguments資訊中包括 -with-http_ssl_module,然後輸入make編譯。 接著備份:cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak 然後覆蓋:cp ./objs/nginx /usr/local/nginx/sbin/ 接下來配置如1。 最後啟動nginx。

報錯: 如果出現“[emerg] 10464#0: unknown directive “ssl” 。。。”則說明在編譯nginx的時候沒有將ssl模組編譯進nginx,在./configure的時候加上“–with-http_ssl_module” ; 如果執行時,系統提示Text file busy,輸入fuser /usr/local/nginx/sbin/nginx,然後kill相關程序即可; 如果編譯時報錯The program‘nginx’ can be … * nginx-core 說明沒有安裝該模組,安裝即可。

ps:輸入/usr/local/nginx/sbin/nginx -V 檢視是否安裝了OpenSSL。檢視 configure arguments 資訊中是否包含 -with-http_ssl_module 字樣,如果沒有則沒有安裝。 輸入 whereis nginx 可檢視nginx的安裝位置

參考1