2017-12-20 11:27更新
不知道有沒有過1個(gè)小時(shí)巧涧,但是試了下去掉--dry-run后嚼蚀,直接顯示申請(qǐng)成功。
之后按照之前弄的nginx的配置忱叭,配置下新的域名隔崎,重啟nginx搞定。
2017-12-20 11:20更新
今天要添加另一個(gè)域名韵丑,一直用網(wǎng)上找到的各種帶--nginx
參數(shù)的命令爵卒,
一直都報(bào)錯(cuò)
Domain: xxx.yy
Type: unauthorized
Detail: Incorrect validation certificate for tls-sni-01 challenge.
Requested
******************************************************************.acme.invalid
from xxx.xxx.xxx.xxx:443. Received 1 certificate(s), first
certificate had names
"******************************************************************.acme.invalid,
dummy"
后面又開始報(bào)錯(cuò)什么太多requests,之后得知是申請(qǐng)證書失敗的次數(shù)太多撵彻,已經(jīng)被拒了钓株,下次嘗試時(shí)实牡,一定記得加上--dry-run
參數(shù),可以測(cè)試是否成功享幽,成功后铲掐,直接去掉該參數(shù),就可以只申請(qǐng)一次值桩。
之后看到
https://stackoverflow.com/questions/45906369/lets-encrypt-check-the-previous-certificat-and-throw-an-error
中問題的評(píng)論有一個(gè)命令摆霉,去掉--nginx
改用--webroot -w /home/xxx/public
,
sudo certbot certonly --webroot -w /home/xxx/public -d xxx.yy
但是報(bào)錯(cuò)Invalid response from http://xx.xx/.well-known/acme-challenge/nJft0J8ESp_VxSLq5HuFUg0qZo2ylsEyNvjHhgy6RG0
奔坟,試著訪問這個(gè)網(wǎng)址携栋,nginx返回403錯(cuò)誤,之后在https://github.com/letsencrypt/acme-spec/issues/221這里看到咳秉,在nginx的配置中加上
location ^~ /.well-known/acme-challenge/ {
# the usual settings
}
再運(yùn)行命令婉支,提示- The dry run was successful.
等下午證書請(qǐng)求限制解除后,再去掉--dry-run
參數(shù)澜建。
==========================================
2017-12-7更新
6號(hào)證書到期向挖,今天找了半天怎么續(xù)期,一直報(bào)錯(cuò)炕舵。
最后去certbot官網(wǎng)何之,一條命令搞定certbot renew
==========================================
安裝certbot
certbot官網(wǎng)選擇正確好,按照流程安裝咽筋,
https://certbot.eff.org/#centosrhel7-nginx
按照后運(yùn)行
sudo certbot --nginx certonly
此時(shí)提示pyopenssl
版本低溶推,但是yum
更新卻提示已經(jīng)是最新
之后按照網(wǎng)上的搜索結(jié)果,嘗試過pip
安裝certbot
奸攻,一直各種包錯(cuò)誤蒜危。
之后按照https://www.yuzhi100.com/article/centos-7-certbot-pyopenssl-missing-required-functionality的方法手動(dòng)更新pyopenssl
之后又提示'module' object has no attribute 'SSL_ST_INIT'
網(wǎng)上搜索無果,之后好像是通過更新了一個(gè)python模塊才行的具體哪個(gè)忘了
之后運(yùn)行命令睹耐,提示nginx配置文件找不到辐赞,要在命令后面指定nginx配置文件,
如下:
sudo certbot --nginx certonly --nginx-server-root /usr/local/nginx/conf
之后填寫一些信息硝训,郵箱什么的占拍,到最后選擇nginx配置中哪個(gè)域名用來生成證書,結(jié)果一直出錯(cuò)捎迫,提示timeout
。
網(wǎng)上有的說是阿里的dns問題表牢,有的說國(guó)內(nèi)幾個(gè)常用的dns都不行窄绒。
把域名的dns解析換成CloudXNS
后,還是不行崔兴。
最后在阿里云ECS發(fā)現(xiàn)沒有打開443端口彰导,之前一直以為這個(gè)端口可能默認(rèn)就打開了蛔翅,所以沒考慮這個(gè)問題,果然打開這個(gè)端口之后就生成成功了位谋。
之后配置nginx山析,完全按照https://www.freehao123.com/lets-encrypt/中第 四—8 點(diǎn)配置,配置完后掏父,發(fā)現(xiàn)網(wǎng)站首頁怎么都顯示不安全笋轨,折騰一陣之后無果。結(jié)果同事用360瀏覽器打開時(shí)赊淑,提示網(wǎng)站中包含不安全的內(nèi)容爵政。
經(jīng)過排查,發(fā)現(xiàn)首頁中"QQ交談"這個(gè)按鈕的圖片是http的陶缺,把代碼中的http改成https之后钾挟,自動(dòng)獲取的那個(gè)圖片還是http的,結(jié)果直接把該圖片的地址加個(gè)s之后饱岸,放到相應(yīng)的img標(biāo)簽中掺出,搞定。
最后苫费,參考https://laravel-china.org/topics/206/deploying-https-and-security-tuning-under-nginx汤锨,把http自動(dòng)跳轉(zhuǎn)到https。