將http升級為https nginx伺服器
我要將http://wechat.mine.com升級為https://wechat.mine.com 首先進入阿里雲–控制檯–域名,點選要升級的域名,在基本資訊那裡點選“免費開啟ssl證書” 如果是企業用建議選擇“DV萬用字元證書”,這個安全性肯定比免費的高。個人的我覺得免費的就夠了。 我想申請wechat.mine.com,那麼在輸入框中填wechat,然後點選確定即可。 到ssl證書控制檯下載nginx證書,還有其他版本。
- 如果安裝過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 下);
- 沒有安裝nginx,安裝參考 安裝,然後步驟與本文1一致。
- 安裝了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的安裝位置