1. 程式人生 > >Let's Encrypt免費通配符 SSL 證書申請教程

Let's Encrypt免費通配符 SSL 證書申請教程

add 要求 驗證 oot 虛擬主機 錯誤 type deny filter

1.下載客戶端,設置可執行權限;

# 下載 Certbot 客戶端 (Centos6以上 先安裝epel)
$ wget https://dl.eff.org/certbot-auto

# 設為可執行權限
$ chmod a+x certbot-auto

2. 申請通配符證書,效驗域名所有權;

$ ./certbot-auto certonly -d "*.xxx.com" --manual --preferred-challenges dns-01 --server https://acme-v02.api.letsencrypt.org/directory

實例:
$ ./certbot-auto certonly -d "*.zhangyuqing.me" -d "zhangyuqing.me" --manual --preferred-challenges dns-01 --server https://acme-v02.api.letsencrypt.org/directory
註釋:
certonly 表示插件,Certbot 有很多插件。不同的插件都可以申請證書,用戶可以根據需要自行選擇。 -d 為哪些主機申請證書。如果是通配符,輸入 *.xxx.com (根據實際情況替換為你自己的域名)。 –preferred-challenges dns-01,使用 DNS 方式校驗域名所有權。 –server,Let’s Encrypt ACME v2 版本使用的服務器不同於 v1 版本,需要顯示指定。

輸入郵箱
上述有兩個交互式的提示:

是否同意 Let‘s Encrypt 協議要求
詢問是否對域名和機器(IP)進行綁定
確認同意才能繼續。

3 添加DNS TXT記錄生成 SLL;(在沒有確認 TXT 記錄生效之前不要回車執行; 要求配置 DNS TXT 記錄,從而校驗域名所有權,也就是判斷證書申請者是否有域名的所有權。)

#登錄服務器 登錄控制臺 獲取記錄值

$ dig -t txt _acme-challenge.newyingyong.cn @8.8.8.8


;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512

;; QUESTION SECTION:
;_acme-challenge.newyingyong.cn. IN TXT


;; ANSWER SECTION:
_acme-challenge.newyingyong.cn. 599 IN TXT "記錄值"

確認生效後,回車繼續執行,最後會輸出內容:

4.校驗證書信息,輸入如下命令:
$ openssl x509 -in /etc/letsencrypt/live/xxx.com/cert.pem -noout -text


5.修改 apache配置
Apache在生成證書後也需要修改一下apache的配置文件 /usr/local/apache/conf/httpd.conf ,查找httpd-ssl將前面的#去掉。

然後再執行:
Apache 2.4如下:

cat >/usr/local/apache/conf/extra/httpd-ssl.conf<<EOF
Listen 443

AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl .crl

SSLCipherSuite EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5
SSLProxyCipherSuite EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5
SSLHonorCipherOrder on

SSLProtocol all -SSLv2 -SSLv3
SSLProxyProtocol all -SSLv2 -SSLv3
SSLPassPhraseDialog builtin

SSLSessionCache "shmcb:/usr/local/apache/logs/ssl_scache(512000)"
SSLSessionCacheTimeout 300

Mutex sysvsem default

SSLStrictSNIVHostCheck on
EOF

並在對應apache虛擬主機配置文件的最後</VirtualHost>下面添加上SSL部分的配置文件:

<VirtualHost *:443>
DocumentRoot /home/wwwroot/www.vpser.net #網站目錄
ServerName www.vpser.net:443 #域名
ServerAdmin [email protected] #郵箱
ErrorLog "/home/wwwlogs/www.vpser.net-error_log" #錯誤日誌
CustomLog "/home/wwwlogs/www.vpser.net-access_log" common #訪問日誌
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/www.vpser.net/fullchain.pem #改一下裏面的域名就行
SSLCertificateKeyFile /etc/letsencrypt/live/www.vpser.net/privkey.pem #改一下裏面的域名就行
<Directory "/home/wwwroot/www.vpser.net"> #網站目錄
SetOutputFilter DEFLATE
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
DirectoryIndex index.html index.php
</Directory>
</VirtualHost>

Let‘s Encrypt 官網https://certbot.eff.org/

Let's Encrypt免費通配符 SSL 證書申請教程