沒錯我又踩坑了。昨晚上搞到十二點半才成功申請。鬼知道OJ服務器是個什麼渣渣。mysql
早上纔算正式弄好,中間也學了很多東西,記錄一下。此次是http轉https,因此默認的仍是隻有80端口。nginx
請務必確保本身的80端口是開的。。不然會GG。web
首先貼一下cerbot的網址 https://certbot.eff.org/,你能夠去裏面選擇你的環境而後會有教程。sql
一、下載Certbot,而且添加權限shell
wget https://dl.eff.org/certbot-auto
chmod a+x ./certbot-auto
二、關閉nginx服務數據庫
sudo service nginx stop
三、使用certbot-auto,生成證書vim
先說一下本身的坑吧,這裏着實坑死我了。bash
不想看的能夠跳過這一段!!!由於不少廢話!!服務器
我先百度了一下,是有這樣的,測試
./certbot-auto certonly --standalone --email 你的郵箱 -- agree-tos -d 你的域名
可是咱們這個oj的域名有點奇怪,估計是沒有,而後會報 certbot: error: unrecognized arguments:。
試了很久,而後我看沒有特別有效的解決辦法,因而我放棄了。
而後,我又試了手動的方式,結果給了我一個蜜汁challenge,看了官網是有這方面的解釋的。
因此個人80端口被佔用了,因而我,查看80端口
lsof -i:80
殺進程。
kill -9 進程id
md殺出問題了。我把數據庫殺掉了,結果mysql掛了。
賊慌,還好重啓了一下,就行了。
因而我這個也放棄了QAQ。
真的是血淚史,哭唧唧。
最後嘗試了一次,這種方式是成功的。
./certbot-auto certonly --webroot -w 你的網站根目錄 -d 你的域名
你進入要配置的域名的nginx的conf裏面,紅色框是根目錄,藍色框就是域名(以前這裏是只有80的,我這個截圖是修改以後的)
四、查看letsencrypt
這一步成功後就會生成這個目錄 /etc/letsencrypt/live/你的域名
這個底下會有這些東西,紅框的兩個是咱們要配置進conf的。
五、配置conf
請在sever下加入這三行
ssl_certificate /etc/letsencrypt/live/你的域名/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/你的域名/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/你的域名/chain.pem;
而且把原來server下的listen 80 去掉改爲
listen 443 ssl;
ssl on;
這裏慎重提醒!!!
千萬不要加listen [::]:443 default_server ipv6only=on,我昨天一直沒成功,是由於加了這句話,我也不知道爲何。花花幫我去掉後就能夠了。
六、測試並重定向
打開nginx服務
sudo service nginx start
這裏先建議測試一下https://你的域名,看是否能夠訪問,不能再去找緣由。我比較順利這裏。就沒有問題。qwq
而後測試成功後,作一個80端口重定向,紅框部分爲你的域名。
七、重啓nginx服務器
上面改完以後
sudo service nginx reload
就能夠了。
不過!!!!我在這裏是出了問題的。證書仍是不行,緣由是我沒有給 /etc/letsencrypt/live/這個裏面權限,致使不能訪問,因此會失敗。
這個就用chmod a+x再給一次權限啦,最好是整個目錄都給哦。
後面再把更新證書寫一下。有效期是90天,因此須要更新證書的!!!。
update: 更新證書
由於纔剛剛上了證書,這麼短期去renew確定是不行的。因此實操仍是不知道效果。這是參考網上的。
一、手動更新
./certbot-auto renew -v
二、自動更新
./certbot-auto renew --quiet --no-self-upgrade
爲了不每90天上來更新一次證書。 我寫了個shell腳本執行第二句話,用corntab寫了個定時任務。
$touch batch.sh $vim batch.sh
執行一下腳本會發現權限不夠,而後以下
$chmod 700 batch.sh $./batch.sh
就能夠運行了。
接下來接入定時任務
$crontab -e
這裏是定時的每週一的一點執行這個腳本
0 1 * * 1 ./bash.sh
保存之後再執行下面這條命令
$service crond restart
查看執行日誌是這樣的
能夠看到我寫的每分鐘執行的一個測試文件
雖然又是一次很辛酸的歷程,可是知道了nginx的配置,還本身申請了一下。總的仍是蠻有(nan)趣(guo)的。
菜雞又學了一些東西,收穫不少。qwq但願對大家有幫助。