用到的網站:https://freessl.cn/ 證書免費
用到的工具:https://keymanager.org/ 一站式管理域名證書 需要提前安裝這個軟件,首次打開需要設置密碼
一、證書申請及驗證+部署:
申請很簡單,打開https://freessl.cn/,登錄后,在首頁的輸入欄里,打上你要添加的域名,再點后面的創建免費的SSL證書就可以了
之后有很多選項,我選的是DNS驗證,一鍵申請,最后你點繼續,會彈出keymanager,然后就會讓添加運營商
若域名運營商在騰訊、阿里等,可以直接選擇,然后去你的騰訊或阿里獲得api就可以一鍵驗證了。
但若不是這幾個,比如是愛名網,就需要手動去添加域名記錄,按提示操作就可以了。
驗證過了之后,證書就會下發成功,此時選擇一鍵部署,然后會讓添加部署信息。
部署信息,也就是你的服務器信息,IP 用戶名 密碼。
填密碼的時候,有兩種,一種是key,一種是密碼。
密碼的簡單,你怎么登錄服務器的,就用什么密碼就好了。
而key的,它會給你一排命令,用SSH連接上服務器后,把這個命令復制然后粘貼,再回車,它就自動創建了,再點部署就會顯示成功。
二、改配置文件:
我是用LNMP搭建的,所以每個域名會有一個域名.conf的配置文件,上面部署成功之后,就要改這個配置文件。
配置文件目錄:/usr/local/nginx/conf/vhost
我也是參考百度上的一篇文章:一鍵LNMP配置SSL證書,全站https訪問 大體相同,但修改的文件不是一樣的。
1、讓https能成功訪問:
只需要在listen 80; 下面,添加以下代碼,然后重啟lnmp就可以了【此處有問題,詳見本地的conf文件。】
以及這篇文章:https://bbs.vpser.net/thread-25617-1-1.html
listen 443 ssl;
ssl on;
ssl_certificate /etc/ssl/cert.pem;
ssl_certificate_key /etc/ssl/key.pem;
2、讓https和http都能訪問:
只需要把上面代碼中 ssl on;改成 ssl off;再重啟lnmp就可以了
3、讓http全跳轉到https:
這需要加個判斷,如下,適用於老站,新站就不用了。位置就放在404的上面即可;
if ($scheme = http ) {return 301 https://$host$request_uri;}
三、遇到的問題:
我一個空間里面,有兩個網站,但如果直接用keymanager的一鍵部署的話,因為空間是一樣的,所以它會把證書給覆蓋了。
所以此時就需要手動添加證書,在keymanager里找到證書列表,在后面的更多里面,找到導出證書。
此時會彈出個列表,讓你選擇格式,因為我的空間是Nginx,所以我就直接選擇的第一個,再導出。
導出后,會以得到兩個文件,其格式,一個是crt,一個是key,把這兩個文件上傳到/etc/ssl目錄。
然后再找到域名配置文件.conf 打開,把上面二-1里面的4行代碼的最后兩行,改一下,說白了,就是改一下最后的兩個文件名
改成你下載的文件名即可,crt對應的ssl_certificate key對應ssl_certificate_key 改好了,上傳,最后再重啟lnmp,就大功告成了。