學習仍是工做中, 都有可能須要咱們把域名升級爲HTTPS,html
好比, 你要使用開發微信公衆, 小程序相關應用, 在初始化的時候, 就要求咱們填寫HTTS的域名做爲驗證nginx
本文記錄了一次HTTPS域名配置的完整過程小程序
話說HTTPS證書但是一筆不小的費用, 不少人倍感無力, 負擔不起啊bash
阿里雲提供了免費證書, 有效期一年, 文中證書就用的阿里雲的 免費的證書還有Let's Encrypt, 也挺好申請服務器
下面主要記錄白嫖阿里雲證書, 以及證書配置過程微信
[toc]session
已申請了本身的域名運維
註冊阿里雲帳號學習
固然要有本身的服務器, 裝一下 Nginx, 待會域名校驗會用到搜索引擎
進入證書控制檯, 點擊證書申請, 填寫信息
域名校驗方式我選擇的是 手動"文件校驗"的方式,
若是你的服務器是阿里雲的, 選擇 "自動DNS驗證"會很方便, 在這裏我們就按照常規方式來, 也算了解一下運維過程
這裏所謂
驗證
, 其實就是經過上面的域名能訪問到, 校驗文件, 訪問不到固然無法讓你使用啦Nginx 配置這裏可能要注意下, 也沒什麼難度
根據本身的服務器類型下載, 這裏我們選擇Nginx
我們把ssl證書放到/ssl
(目錄隨意吧), 把下載的證書文件解壓以後, 上傳到該目錄
貼一下Nginx配置, 記得改完配置要重啓Nginx哦
server {
#listen 80; #偵聽80端口,若是強制全部的訪問都必須是HTTPs的,這行須要註銷掉
listen 443 ssl;
server_name xxx.com; #域名
# 增長ssl
#ssl on; #若是強制HTTPs訪問,這行要打開
ssl_certificate /ssl/xxxx.pem;
ssl_certificate_key /ssl/xxxxx.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
# 指定密碼爲openssl支持的格式
ssl_protocols SSLv2 SSLv3 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5; # 密碼加密方式
ssl_prefer_server_ciphers on; # 依賴SSLv3和TLSv1協議的服務器密碼將優先於客戶端密碼
# 定義首頁索引目錄和名稱
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
#重定向錯誤頁面到 /50x.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
複製代碼
而後就能夠愉快的訪問體驗HTTPS了
在配置過程當中, 可能會出現訪問沒反應, 等各類問題,
這時候, 不要慌, 我們有思路
此時必定要觀察Nginx的 access.log 和 error.log, 從error.log 通常能找到有效信息, 能夠拿到error關鍵字, 再取搜索引擎去分析解決
我剛纔配置就失敗了一次, Nginx配置完證書以後, 重啓, 輸入url訪問未反應,
隨即看下error.log,
2020/05/10 03:11:39 [emerg] 1#1: cannot load certificate "/ssl/xxx.key": PEM_read_bio_X509_AUX() failed (SSL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE)
複製代碼
帶着關鍵字去搜索, 隨便點進去一篇, 忽然注意點, 我證書配置對應錯了, 哈哈, 尷尬
立刻改正, 重啓, 驗證有效, OK !