申請Let’s Encrypt永久免費SSL證書過程教程及常見問題

配置證書https://easy.zhetao.com/
 
雖然目前Let’s Encrypt免費SSL證書默認是90天有效期,可是咱們也能夠到期自動續約,不影響咱們的嘗試和使用,爲了考慮到文章的真實性和之後的實戰性,老左準備利用一些時間分篇幅的展示在應用Let’s Encrypt證書的過程,這篇文章分享申請的方法教程。
第1、安裝Let’s Encrypt前的準備工做
根據官方的要求,咱們在VPS、服務器上部署Let’s Encrypt免費SSL證書以前,須要系統支持Python2.7以上版本以及支持GIT工具。這個須要根據咱們不一樣的系統版本進行安裝和升級,由於有些服務商提供的版本兼容是完善的,尤爲是debian環境兼容性比CentOS好一些。
好比CentOS 6 64位環境不支持GIT,咱們還能夠參考」 Linux CentOS 6 64位系統安裝Git工具環境教程「和」 9步驟升級CentOS5系統Python版本到2.7「進行安裝和升級。最爲 簡單的就是Debian環境不支持,能夠運行」apt-get -y install git」直接安裝支持,若是是CentOS直接運行」yum -y install git-core」支持。這個具體遇到問題在討論和搜索解決方案,由於每一個環境、商家發行版均可能不一樣。在這篇文章中,老左採用的是debian 7 環境。
第2、快速獲取Let’s Encrypt免費SSL證書
在以前的博文中老左也分享過幾篇關於SSL部署的過程,我本身也搞的暈乎暈乎的,獲取證書和佈局仍是比較複雜的,Let’s Encrypt確定是考慮到推廣HTTPS的普及型會讓用戶簡單的獲取和部署SSL證書,因此能夠採用下面簡單的一鍵部署獲取證書。
PS:在獲取某個站點證書文件的時候,咱們須要在安裝PYTHON2.7以及GIT,更須要將域名解析到當前VPS主機IP中。
git clone https://github.com/letsencrypt/letsencrypt

cd letsencrypt

./letsencrypt-auto certonly --standalone --email admin@laozuo.org -d laozuo.org -d www.laozuo.org
而後執行上面的腳本,咱們須要根據本身的實際站點狀況將域名更換成本身須要部署的。
 
快速獲取Let’s Encrypt免費SSL證書
看到這個界面,直接Agree回車。

 

Let’s Encrypt安裝成功
 
而後看到這個界面表示部署成功。目前根據你們的反饋以及老左的測試,若是域名是用的國內DNS,包括第三那方DNSPOD等,均可能獲取不到域名信息。

 

Let’s Encrypt國內域名DNS不支持
這裏咱們能夠看到有」The server could not connect to the client to verify the domain」的錯誤提示信息,包括也有其餘提示錯誤,」The server experienced an internal error :: Error creating new registration」咱們在郵局的時候不要用國內免費郵局。因此,若是咱們是海外域名就直接先用域名自帶的DNS。
第3、Let’s Encrypt免費SSL證書獲取與應用
在完成Let’s Encrypt證書的生成以後,咱們會在」/etc/letsencrypt/live/laozuo.org/」域名目錄下有4個文件就是生成的密鑰證書文件。
cert.pem – Apache服務器端證書
chain.pem – Apache根證書和中繼證書
fullchain.pem – Nginx所須要ssl_certificate文件
privkey.pem – 安全證書KEY文件
若是咱們使用的Nginx環境,那就須要用到fullchain.pem和privkey.pem兩個證書文件,在部署Nginx的時候須要用到(參考: LNMP一鍵包環境安裝SSL安全證書且部署HTTPS網站URL過程)。在這篇文章中老左就不詳細演示Let’s Encrypt證書證書的安裝,後面再從新折騰一篇文章詳細的部署證書的安裝Nginx和Apache。
ssl_certificate /etc/letsencrypt/live/laozuo.org/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/laozuo.org/privkey.pem;
好比咱們在Nginx環境中,只要將對應的ssl_certificate和ssl_certificate_key路徑設置成咱們生成的2個文件就能夠,最好不要移動和複製文件,由於續期的時候直接續期生成的目錄文件就能夠,不須要再手工複製。
第4、解決Let’s Encrypt免費SSL證書有效期問題
咱們從生成的文件中能夠看到,Let’s Encrypt證書是有效期90天的,須要咱們本身手工更新續期才能夠。
./letsencrypt-auto certonly --renew-by-default --email admin@laozuo.org -d laozuo.org -d www.laozuo.org
這樣咱們在90天內再去執行一次就能夠解決續期問題,這樣又能夠繼續使用90天。若是咱們怕忘記的話也能夠製做成定時執行任務,好比每月執行一次。
第5、關於Let’s Encrypt免費SSL證書總結
經過以上幾個步驟的學習和應用,咱們確定學會了利用Let’s Encrypt免費生成和獲取SSL證書文件,隨着Let’s Encrypt的應用普及,SSL之後直接免費不須要購買,由於大部分主流瀏覽器都支持且有更多的主流商家的支持和贊助,HTTPS之後看來也是趨勢。在Let’s Encrypt執行過程在中咱們須要解決幾個問題。
A – 域名DNS和解析問題。在配置Let’s Encrypt免費SSL證書的時候域名必定要解析到當前VPS服務器,並且DNS必須用到海外域名DNS,若是用國內免費DNS可能會致使獲取不到錯誤。
B – 安裝Let’s Encrypt部署以前須要服務器支持PYTHON2.7以及GIT環境,要不沒法部署。
C – Let’s Encrypt默認是90天免費,須要手工或者自動續期才能夠繼續使用。
 
 
 
nginx 配置方法 紅色部分替換 圖上 標紅的地方
server {
 
listen 80;
listen 443 ssl;
 
 
 
ssl_certificate /etc/letsencrypt/live/www.emenotec.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.emenotec.com/privkey.pem;
ssl_ciphers 「EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH」;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
 
server_name www.emenotec.com emenotec.com;
 
# rewrite ^(.*)$ https://$host$1 permanent;
# access_log /var/log/nginx/access.log main;
 
location / {
root /www/magento2/blog;
index index.php index.html index.htm;
 
if (-f $request_filename/index.html){
rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php){
rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
rewrite (.*) /index.php;
}
}
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
 
location ~ \.php$ {
root /www/magento2/blog;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
 
 
證書上傳添加到 stackpath
 
 
自動續期
首先咱們須要將可執行文件 移動一個公共目錄。
若是要放到root目錄下,只要處理好權限問題也是能夠的。
 
手動延期
1
./certbot-auto renew –dry-run
 
利用Cron自動延期
注意路徑問題。
1
./certbot-auto renew –quiet
 
crontab -e
在打開的編輯器中添加以下內容(每月1號凌晨3點更新)
0 0 3 * * ./certbot-auto renew –dry-run
相關文章
相關標籤/搜索