我們昨天發佈的一篇教程(免費的SSL證書它不香嗎?香,真香!)跟大家分享瞭如何通過阿里雲去申請免費的SSL證書,有效期1年,支持個人/企業申請,一個阿里雲帳戶最多可簽發20張。
申請好了SSL證書下一步就是配置安裝部署證書,把證書用起來,步驟也很簡單,這裡跟大家分享下如何在Nginx服務器中輕鬆部署安裝配置,3步搞定。
本教程是接著上一個教程的示例繼續操作,如果沒看過上一篇教程,可以到我們的主頁上查看下相關內容
第1步 下載證書文件到本地電腦中
在阿里雲控制檯中的SSL操作界面中找到剛申請成功的免費SSL證書,點擊右側的「下載」鏈接,彈出下載頁面,然後點擊Nginx右側的下載按鈕,下載證書文件。
每種WEB服務器的SSL證書格式不一樣,不通用,需要單獨下載對應服務器的SSL證書文件
下載完是一個zip壓縮包文件,需要進行解壓,解壓下來是兩個文件:
以.key為後綴的文件是密鑰文件
以.pem為後綴的文件是證書文件
第2步 上傳到服務器中的特定的文件夾目錄下
將第1步中的證書文件(.pem結尾)和密鑰文件(.key)文件上傳到Nginx服務器中,這兩個文件具體的放置路徑是在Nginx安裝目錄下的conf/cert文件夾中。
比如你的Nginx安裝目錄是/usr/local/nginx,則先在/usr/local/nginx/conf目錄下新建一個文件夾cert,然後將這兩個文件上傳放置在這個目錄下。
如果你是Linux主機的話可以參照下面的命令(Windows用戶可以手動圖形化界面操作):
<code>//創建cert目錄
cd /usr/local/nginx/conf/
mkdir cert/<code>
通過FTP、SCP或者SFTP等工具將證書上傳到cert目錄,最終效果是:
第3步 配置nginx.conf,使證書生效
修改nginx的配置文件/usr/local/nginx/conf/nginx.conf,修改之前最好通過複製命令將該配置文件備份一份,以防萬一把該配置文件改壞了,好恢復。
<code>//備份一份原始的配置文件
cp nginx.conf nginx.conf.bak.2020.03.09/<code>
接下來就修改nginx.conf文件:
<code>vim nginx.conf/<code>
在nginx.conf裡增加配置信息:
<code># HTTPS server
server {
listen 443 ssl;
server_name api.yuanhuaixuetang.com;
ssl_certificate cert/3564574_api.yuanhuaixuetang.com.pem;
ssl_certificate_key cert/3564574_api.yuanhuaixuetang.com.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;
root /var/www-data/yhxtapi;
index index.html index.php;
location / {
}
}/<code>
這裡對上面的配置信息做一個簡單的解釋 :
配置信息中ssl開頭的配置項是與SSL證書配置相關的,其他內容是一般的Nginx服務器配置信息。
<code>listen 443 ssl;
//監聽443端口,因為SSL協議是走443端口/<code>
<code>servername api.yuanhuaixuetang.com;
//虛擬主機的servername,要與你所用的證書中的域名一致,也就是當時申請SSL證書時用的什麼域名,這裡也要是相同的域名。/<code>
<code>ssl_certificate cert/3564574_api.yuanhuaixuetang.com.pem;
//證書文件(.pem)的路徑地址,也就是第2步中上傳的證書文件的存放地址/<code>
<code>ssl_certificate_key cert/3564574_api.yuanhuaixuetang.com.key;
//密鑰文件(.key)的路徑地址,也就是第2步中上傳的密鑰文件的存放地址/<code>
<code>ssl_session_timeout 5m;
//客戶端可以重用會話緩存中的ssl的過期時間/<code>
<code>ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
//密碼加密方式/<code>
<code>ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
//啟用特定的加密協議/<code>
<code>ssl_prefer_server_ciphers on;
//配置優先使用服務端的加密套件,而不是客戶端瀏覽器的加密套件/<code>
其他配置信息是基本的Nginx服務器配置信息,這裡不詳細介紹了。
配置完成之後,保存,使用nginx的命令測試一下配置文件是否正確:
<code>nginx -t/<code>
輸出結果:
<code>nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful/<code>
代表配置文件修改的沒問題。
然後讓nginx重新加載下配置文件
<code>nginx -s reload/<code>
配置就完成了!接下來就是測試看看效果了。
測試下效果
測試之前你需要做的:
確保你的服務器防火牆443端口已開啟,因為SSL協議是走443端口的,像使用阿里雲ECS服務器的話防火牆默認是沒開啟443端口,需要自己手動去開啟。做好域名的解析,將域名正確的解析到你的服務器IP地址上。做好了這兩步之後,你可以在剛配置好的SSL虛擬主機的根目錄下新建一個html文件測試下。
按照本文中的配置的話就是在 /var/www-data/yhxtapi目錄下新建一個index.html,隨便寫點內容,然後打開瀏覽器,訪問:https://api.yuanhuaixuetang.com/
點擊左側的小鎖圖標可以看到信息
看到上面中的顯示效果代表你的SSL證書生效了,配置安裝成功了!
可以再多做一件事
你可以在nginx.conf裡再多配置一點:
<code>server {
\tlisten 80;
\tserver_name api.yuanhuaixuetang.com;
\trewrite ^(.*)$ https://$host$1 permanent;
}/<code>
上面的配置可以讓用於訪問HTTP請求時自動跳轉到HTTPS開頭的地址,確保用戶訪問的是安全的HTTPS鏈接。
下載證書 -> 上傳證書 -> 配置web服務器,3步可以搞定SSL證書安裝使用,最後別忘了配置完成後測試一下是否成功,是不是很簡單?
在其他的WEB服務器中安裝配置的步驟與此類似,不過配置web服務器與Nginx服務器中不同
本文為遠懷學堂原創,覺得有用,有價值就收藏、轉發吧,同時記得關注「遠懷學堂」,我們專注於「原創·精品」的IT技術教程,圖文 & 視頻。