1. 程式人生 > >網站實現https 申請Let's Encrypt永久免費SSL證書

網站實現https 申請Let's Encrypt永久免費SSL證書

Let's Encrypt簡介

Let's Encrypt作為一個公共且免費SSL的專案逐漸被廣大使用者傳播和使用,是由Mozilla、Cisco、Akamai、IdenTrust、EFF等組織人員發起,主要的目的也是為了推進網站從HTTP向HTTPS過度的程序,目前已經有越來越多的商家加入和贊助支援。

Let's Encrypt免費SSL證書的出現,也會對傳統提供付費SSL證書服務的商家有不小的打擊。到目前為止,Let's Encrypt獲得IdenTrust交叉簽名,這就是說可以應用且支援包括FireFox、Chrome在內的主流瀏覽器的相容和支援,雖然目前是公測階段,但是也有不少的使用者在自有網站專案中正式使用起來。

步驟如下:

第一、安裝Let's Encrypt前的準備工作

#檢查系統是否安裝git,如果已經自帶有git會出現git版本號,沒有則需要我們自己安裝
git  --version 
#git 安裝
yum install git
#檢查Python的版本是否在2.7以上
python -v //2.6版本
#安裝python所需的包
yum install zlib-devel
yum install bzip2-devel
yum install openssl-devel
yum install ncurses-devel
yum install sqlite-devel
#獲取到Python
cd /usr/local/src
wget https://www.python.org/ftp/python/2.7.12/Python-2.7.12.tar.xz
#解壓Python2.7.12
tar -zxvf Python-2.7.12.tar.xz
#編譯python
cd Python-2.7.12/
./configure --prefix=/usr/local/python2.7
make && make install
#建立連結
ln -s /usr/local/python2.7/bin/python2.7 /usr/local/bin/python
#解決系統 Python 軟連結指向 Python2.7 版本後,因為yum是不相容 Python 2.7的,所需要指定 yum 的Python版本
# vi /usr/bin/yum 
將頭部的
#!/usr/bin/python
改成
#!/usr/bin/python2.6.6

第二、獲取Let's Encrypt免費SSL證書

#獲取letsencrypt
git clone https://github.com/letsencrypt/letsencrypt
#進入letsencrypt目錄
cd letsencrypt
#生成證書
./letsencrypt-auto certonly --standalone --email [email protected] -d zhaoheqiang.me -d www.zhaoheqiang.me

第三、Let's Encrypt免費SSL證書獲取與應用

在完成Let's Encrypt證書的生成之後,我們會在"/etc/letsencrypt/live/zhaoheqiang.me/"域名目錄下有4個檔案就是生成的金鑰證書檔案。

cert.pem - Apache伺服器端證書
chain.pem - Apache根證書和中繼證書
fullchain.pem - Nginx所需要ssl_certificate檔案
privkey.pem - 安全證書KEY檔案

如果我們使用的Nginx環境,那就需要用到fullchain.pem和privkey.pem兩個證書檔案,在部署Nginx的時候需要用到。在Nginx環境中,只要將對應的ssl_certificate和ssl_certificate_key路徑設定成我們生成的2個檔案就可以。

#開啟linux配置檔案,找到HTTPS 443埠配置的server
 ssl_certificate /etc/letsencrypt/live/zhaoheqiang.me/fullchain.pem;
 ssl_certificate_key /etc/letsencrypt/live/zhaoheqiang.me/privkey.pem;

第四、解決Let's Encrypt免費SSL證書有效期問題

Let's Encrypt證書是有效期90天的,需要我們自己手工更新續期才可以。
命令如下:

 ./letsencrypt-auto certonly --renew-by-default --email [email protected] -d zhaoheqiang.me -d www.zhaoheqiang.me

這樣我們在90天內再去執行一次就可以解決續期問題,這樣又可以繼續使用90天。如果我們怕忘記的話也可以利用linux crontab定時執行更新任務