轉自: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學習日志(三)配置SSL證書(網站由http轉成https)
作者:hjljy
地址:https://www.hjljy.cn/articles/2019/02/28/1551347168588.html
<span id="articleShare">
<span class="post__share-icon" data-type="wechat">
<svg><use xlink:href="#icon-wechat"></use></svg>
</span>
<span class="post__share-icon" data-type="weibo">
<svg><use xlink:href="#icon-weibo"></use></svg>
</span>
<span class="post__share-icon" data-type="twitter">
<svg><use xlink:href="#icon-twitter"></use></svg>
</span>
<span class="post__share-icon" data-type="qqz">
<svg><use xlink:href="#icon-qqz"></use></svg>
</span>
<span class="article__code" data-title="Nginx學習日志(三)配置SSL證書(網站由http轉成https)" data-blogtitle="海加爾金鷹" data-url="https://www.hjljy.cn/articles/2019/02/28/1551347168588.html" data-avatar="https://img.hacpai.com/avatar/1547428844287_1580478720095.png?imageView2/1/w/128/h/128/interlace/0/q/100"></span>
</span>
</div>
</div>
</article>