Nginx配置SSL證書(網站由http轉成https)


轉自:https://www.hjljy.cn/articles/2019/02/28/1551347168588.html

Nginx學習日志(三)配置SSL證書(網站由http轉成https)

Nginx學習日志

Nginx學習日志(一)簡單入門
Nginx學習日志(二)通過反向代理將不同域名映射到不同的端口

發現現在很多網站都變成了https,並且在瀏覽器當中如果是http類型的網站,還會提示網站不安全,所以打算將自己的博客換成https類型。
記錄一下HTTP升級到HTTPS的過程。
網上看着很簡單,但實際上還是遇到了不少的問題,不過還好,最終都一一解決了

什么是SSL證書?

SSL證書是數字證書的一種,類似於駕駛證、護照和營業執照的電子副本。因為配置在服務器上,也稱為SSL服務器證書。

參考資料:
https://yq.aliyun.com/articles/602965
https://www.sohu.com/a/225956682_596521

如何獲取免費的SSL證書?

11種免費獲取SSL證書的方式: https://www.toolmao.com/get-free-ssl (一篇非常詳細的文章)
由於我是使用的阿里雲服務器,所以是通過阿里雲當中獲取的免費SSL證書。

nginx里面如何配置SSL證書?

由於我在阿里雲服務器上的網站使用了Nginx,這里主要記錄nginx的ssl證書配置過程。

配置過程

第一步: 將阿里雲獲取到的SSL證書下載下來。一般是兩個文件:xxxx.pem 以及 xxxx.key
第二步: 在Nginx的安裝目錄下創建cert目錄,並將下載的文件全部拷貝進去。
第三步: 修改nginx.conf配置信息
將原來的HTTP跳轉重定向到https上面

    server { 
	listen 80; 
	server_name hjljy.cn,www.hjljy.cn; 
	location / { 
		return 301 https://www.hjljy.cn$request_uri;
		} 
	}

配置https的相關跳轉

 server {
        listen       443 ssl;
        server_name  www.hjljy.cn;
		ssl on;
        ssl_certificate      ../cert/1864683_www.hjljy.cn.pem;   #注意這里 指定第二步當中拷貝的文件位置
        ssl_certificate_key  ../cert/1864683_www.hjljy.cn.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 / {
            	proxy_pass http://127.0.0.1:8081;   
        		proxy_set_header  Host $host:$server_port;
        		proxy_set_header  X-Real-IP  $remote_addr;
        	}
	}

第四步: 重啟nginx 在安裝目錄bin下面輸入:./nginx -s reload 報如下錯誤 因為安裝nginx時未加載ssl模塊
nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf:84
處理方式一:https://www.cnblogs.com/ghjbk/p/6744131.html
處理方式二:直接重新安裝nginx 在安裝時記得加載ssl模塊支持。同時記得備份重要配置文件。
最后重啟nginx就可以了。

問題總結

主要遇到了三個問題
第一個就是nginx未加載ssl模塊報錯的問題
第二個就是證書文件位置的問題
第三個花費時間最長,是屬於自己的博客軟件的問題。排查了很久才想到這個問題。
我使用的是solo博客軟件 在軟件初始化的時候,當時配置的網絡地址是http類型的,導致在更換到https之后,部分靜態資源無法獲取到,存在資源降級的問題(就是開始是https的連接類型,然后里面有一些是http類型的連接,這部分的靜態資源獲取不到)。重新配置重啟一下就好了。

參考資料

Nginx/Tengine服務器安裝SSL證書


標題:Nginx學習日志(三)配置SSL證書(網站由http轉成https)

作者:hjljy

地址:https://www.hjljy.cn/articles/2019/02/28/1551347168588.html



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM