Let's Encrypt是很火的一個免費SSL證書發行項目,自動化發行證書,證書有90天的有效期。適合我的使用或者臨時使用,不用再忍受自簽發證書不受瀏覽器信賴的提示。Let's Encrypt已經發布了新的工具certbot,雖然是新的工具,可是生成證書的使用方法和參數是基本一致的,證書續期更簡單了。可是目前看certbot在一些老版本的Linux發行版上的兼容性仍是有問題的,特別是在CentOS 5上由於python版本太低是沒法用的,CentOS 6上須要先安裝epel才行,固然也有不少第三方的工具你也能夠本身去嘗試一下。html
例:CentOS 6/7python
yum install epel-release
cd /root/ wget https://dl.eff.org/certbot-auto --no-check-certificate
chmod +x ./certbot-auto
./certbot-auto -n #只是用來安裝依賴包的
域名生成證書:
./certbot-auto certonly --email XX@qq.com --agree-tos --webroot -w /home/wwwroot/ -d www.123.netnginx
多域名單目錄生成單證書:
./certbot-auto certonly --email XX@qq.com --agree-tos --webroot -w /home/wwwroot/ -d www.123.net -d bbs.123.netweb
多域名多目錄生成多個證書:
./certbot-auto certonly --email XX@qq.com --agree-tos --webroot -w /home/wwwroot/ -d www.123.net -d bbs.123.net -w /home/wwwroot/ -d www.123.org -d lnmp.org瀏覽器
生成證書成功!!!!!!session
cerrbot的續期比原來的更加簡單,由於證書只有90天,因此建議使用crontab進行自動續期:
crontab 里加上以下規則:dom
0 */12 * * * /root/certbot-auto renew --renew-hook "/etc/init.d/nginx reload"
0 */12 * * * /root/certbot-auto renew --renew-hook "service nginx reload" 工具
*官方建議一天兩次ui
Nginx 配置url
#########HTTP and HTTPS###############################
server {
listen 8080;
listen 443 ssl;
server_name she.mymlsoft.com;
root /etc/nginx/html;
ssl_certificate /etc/letsencrypt/live/she.mymlsoft.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/she.mymlsoft.com/privkey.pem;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
#########HTTP and HTTPS###############################
#########Only for HTTPS################################
server {
listen 80;
server_name my.domain.com;
root /usr/share/nginx/html;
location / {
return 301 https://$server_name$request_uri;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
#########Only for HTTPS################################
cerrbot的續期比原來的更加簡單,由於證書只有90天,因此建議使用crontab進行自動續期:
crontab 里加上以下規則:0 3 */5 * * /root/certbot-auto renew --renew-hook "/etc/init.d/nginx reload" 這樣每5天就會執行一次全部域名的續期操做。固然時間也能夠自行進行調整,建議別太頻繁,由於他們都有請求次數的限制,若是須要強制更新能夠在前面命令上加上 --force-renew 參數。
一、由於默認LNMP的虛擬主機裏是禁止 . 開頭的隱藏文件及目錄的,因此訪問http://abc.com/.well-known/acme-challenge/**** 這個連接的話返回403錯誤,因此必需要將對應虛擬主機配置文件裏的
location ~ /\.
{
deny all;
}
這段配置刪掉或註釋掉或在這段配置前面加上
location ~ /.well-known {
allow all;
}
以上配置代碼,而後重啓nginx。
二、若是要啓用http2的話,建議編輯lnmp.conf,將裏面的Nginx_Modules_Options的單引號里加上 --with-openssl=/root/openssl-1.0.2h
並執行: cd /root && wget -c https://www.openssl.org/source/openssl-1.0.2h.tar.gz && tar zxf openssl-1.0.2h.tar.gz ,而後使用升級腳本 ./upgrade.sh nginx 升級nginx至1.9.5或更高版本。
三、國內有些用戶反映會卡在Installing Python packages...這個地方不動,由於pip的默認源是國外的,國內可能會有點慢,能夠執行下面命令來修改pip源爲國內的:
mkdir ~/.pip
cat > ~/.pip/pip.conf <<EOF
[global]
index-url = https://pypi.doubanio.com/simple/
[install]
trusted-host=pypi.doubanio.com
EOF
執行完,再從新運行certbot的命令應該正常安裝python的包了。
轉自:https://www.vpser.net/build/letsencrypt-certbot.html