原文地址:阿里云https+nginx服務搭建
本文不會介紹https相關知識,只是把我創建https服務的過程分享出來,供讀者參考。并且已經假設你已經購買了服務器和域名。
購買證書
- 通過控制臺進入
CA證書服務
,點擊右上角的購買證書,進入如下圖的界面,選擇免費的Symantec
的DV SSL
。

購買https證書
- 一路點過去,然后回到證書服務主頁,會出現一條訂單信息,點擊補全,如下圖所示。

證書信息補全
- 然后按照要求,首先填寫你要申請證書的完整域名(例如www.test.com,因為此證書為單域名,不能使用通配符);然后填寫個人信息,值得注意的是需要勾選下圖紅圈包圍的選項,讓驗證自動化進行,不用手動操作;然后下一步,完成信息補全,等待幾分鐘,驗證就可以通過。

個人信息
添加443端口(https)安全組規則
- 等待的這個時間,你可以去檢查一下你的服務器的安全組配置,看一下是否加入了443端口的鏈接,防止后面連接不上。創建的新規則如下圖。

?添加https安全組
下載證書
- 幾分鐘后,可以看到下圖的狀態。

完成證書簽發
- 接著點擊下載,進入下圖的界面,并點擊
下載證書for Nginx

下載證書
配置Nginx
服務器
把這個文件解壓后,會有兩個文件,分別為
***.pem
和***.key
(可以修改成你需要的名字),將這兩個文件拷貝到你的Nginx
根目錄下的cert
文件夾內(自己創建的,也可以命名成其他名字)。接下來就要配置
Nginx
服務器了。
如果你配置了反向代理,?就去conf.d
目錄下,修改你要配置https
的?conf文件。下面貼一個范例配置。其中端口80為http
鏈接,設置為重定向https
;端口443為https
鏈接。
如果沒有配置反向代理,應該可以直接在根目錄下的nginx.conf
中添加配置就行了(去掉最前面upstream test
),這個我還沒試過,感興趣的小伙伴可以去試試。
upstream test {
server 127.0.0.1:8080;
}
server {
listen 80;
server_name www.test.com;
return 301 https://$host$request_uri;
}
server {
listen 443;
server_name www.test.com;
ssl on;
index index.html;
ssl_certificate /etc/nginx/cert/***.pem;
ssl_certificate_key /etc/nginx/cert/***.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_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
expires off;
sendfile off;
proxy_pass http://test;
}
}
- 配置完以后運行
nginx -s reload
重新加載配置,去瀏覽器輸入鏈接,此時成功進入https鏈接??。