摘要:可以使用多個(gè)添加多個(gè)域名可以幫我們自動(dòng)注冊證書,是靜態(tài)資源所指的路徑。輸入命令之后選擇即可,后續(xù)將會(huì)讓你繼續(xù)輸入郵箱信息如果出現(xiàn)字樣,則證明證書已被自動(dòng)注冊。
本文以Debian 8為服務(wù)器栗子
最近升級了個(gè)人博客為https協(xié)議,寫一個(gè)詳細(xì)的教程幫助更多人升級https。
https的詳細(xì)原理在此文中省略,簡略來說,既是客戶端在訪問服務(wù)器時(shí)需要一個(gè)數(shù)字證書(里面包括公鑰),它由權(quán)威機(jī)構(gòu)(CA, Certificate Authority)頒發(fā),來確認(rèn)公鑰確實(shí)是服務(wù)器發(fā)出來的。
證書價(jià)格不菲,大概7天需要幾美金到幾百美金不等(根據(jù)認(rèn)證的等級和域名覆蓋范圍區(qū)分),所以很多證書都是商業(yè)級的,提供給商業(yè)網(wǎng)站使用。
獲取免費(fèi)證書那么個(gè)人將無法獲取數(shù)字證書么?不是的,為了鼓勵(lì)https的普及,EFF成立了免費(fèi)證書最大的提供商為Let’s Encrypt,可以提供免費(fèi)證書。那么小型的網(wǎng)站,就可以使用免費(fèi)證書升級為https啦。
當(dāng)然Let’s Encrypt生成的證書,只能是單域名的,而且只有最低級的域名驗(yàn)證。
克隆letsencrypt客戶端$ git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt
如果遇到權(quán)限問題,記得先創(chuàng)建/opt/letsencrypt文件夾再,更改文件夾權(quán)限為可寫入。注冊證書 Nginx指向靜態(tài)路徑注冊證書
注冊一個(gè)域名證書非常簡單,使用letsencrypt就能生成https所需的證書。當(dāng)然,用letsencrypt生成的證書只支持域名驗(yàn)證,只需要用letsenctypt的自動(dòng)注冊證書命令,證明這個(gè)域名是自己的是用的即可。
$ cd /opt/letsencrypt $ ./letsencrypt-auto certonly -a webroot --webroot-path=/var/www/me -d me.chanchun.com.cn # 可以使用多個(gè) -d 添加多個(gè)域名
letsencrypt可以幫我們自動(dòng)注冊證書,--webroot-path是靜態(tài)資源所指的路徑。-d是域名域名,也可以多個(gè)-d增加多個(gè)域名。最后確保使用https的域名都被letsencrypt注冊。
后續(xù)將會(huì)讓你繼續(xù)輸入郵箱信息
如果出現(xiàn)Congratulations!字樣,則證明證書已被自動(dòng)注冊。
Nginx轉(zhuǎn)發(fā)型注冊證書如果是使用Nginx直接重定向服務(wù)器本地服務(wù),非靜態(tài)資源,就省略--webroot-path和-a參數(shù)。
$ cd /opt/letsencrypt $ ./letsencrypt-auto certonly -d ca.chanchun.com.cn
輸入命令之后
How would you like to authenticate with the ACME CA? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: Nginx Web Server plugin (nginx) 2: Spin up a temporary webserver (standalone) 3: Place files in webroot directory (webroot) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Select the appropriate number [1-3] then [enter] (press "c" to cancel):
選擇1即可,后續(xù)將會(huì)讓你繼續(xù)輸入郵箱信息
如果出現(xiàn)Congratulations!字樣,則證明證書已被自動(dòng)注冊。
Nginx配置直到這一步,證書已經(jīng)就緒,只要配置好Nginx即可完美升級https。Nginx安裝、啟動(dòng)教程請具體請教N(yùn)ginx教程。
轉(zhuǎn)發(fā)到本地服務(wù)Nginx配置Sample:#http重定向到https配置 證書驗(yàn)證配置 server { listen 80; server_name ca.chanchun.com.cn; # 這里寫你的域名 location ^~ /.well-known/acme-challenge/ { # 不要修改 letsencrypt需要驗(yàn)證你的域名 default_type "text/plain"; proxy_pass http://localhost:3000; # 填寫你需要轉(zhuǎn)發(fā)的服務(wù)器地址 } location = /.well-known/acme-challenge/ { # 不要修改 letsencrypt需要驗(yàn)證你的域名 return 404; } return 301 https://$server_name$request_uri; } # https配置 server { # SSL Configuration listen 443 ssl; server_name ca.chanchun.com.cn; # 這里寫你的域名 # copy from https://cipherli.st ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH"; ssl_ecdh_curve secp384r1; # Requires nginx >= 1.1.0 ssl_session_cache shared:SSL:10m; ssl_session_tickets off; # Requires nginx >= 1.5.9 ssl_stapling on; # Requires nginx >= 1.3.7 ssl_stapling_verify on; # Requires nginx => 1.3.7 resolver 8.8.8.8 8.8.4.4 valid=300s; resolver_timeout 5s; add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"; add_header X-Frame-Options DENY; add_header X-Content-Type-Options nosniff; # specify cert files ssl_certificate /etc/letsencrypt/live/ca.chanchun.com.cn/fullchain.pem; # 中間填寫你的域名 ssl_certificate_key /etc/letsencrypt/live/ca.chanchun.com.cn/privkey.pem; # 中間填寫你的域名 location / { proxy_pass http://localhost:3000; # 填寫你需要轉(zhuǎn)發(fā)的服務(wù)器地址 } }指向靜態(tài)文件Nginx配置Sample:
server { listen 80; server_name me.chanchun.com.cn; # 這里寫你的域名 location ^~ /.well-known/acme-challenge/ { default_type "text/plain"; root /var/www/me; # 這里寫你的靜態(tài)文件目錄 } location = /.well-known/acme-challenge/ { return 404; } return 301 https://$server_name$request_uri; } server { # SSL Configuration listen 443 ssl; server_name me.chanchun.com.cn; # 這里寫你的域名 # specify cert files ssl_certificate /etc/letsencrypt/live/me.chanchun.com.cn/fullchain.pem; # 中間寫你的域名 ssl_certificate_key /etc/letsencrypt/live/me.chanchun.com.cn/privkey.pem; # 中間寫你的域名 location / { root /var/www/me; # 這里寫你的靜態(tài)文件目錄 index index.html index.htm; # 這里寫你暴露的靜態(tài)文件 } }
Nginx配置各有各的配置方法,這里只要保證四點(diǎn):
域名配置正確
靜態(tài)文件目錄路徑、本地服務(wù)目錄路徑配置正確
.well-known/acme-challenge目錄配置正確
要保證80默認(rèn)端口和443ssl端口都有配置
如果配置好Nginx,那么訪問網(wǎng)站就會(huì)有綠色的小鑰匙啦,說明你的https站點(diǎn)搭建好。
自動(dòng)更新證書letsencrypt證書最多只有90天,90天之后我們需要重新注冊證書,當(dāng)然這個(gè)可以交給服務(wù)器自己做啦。
驗(yàn)證自己的證書是否可以更新$ cd /opt/letsencrypt $ ./letsencrypt-auto renew --dry-run
此命令只是驗(yàn)證 不會(huì)更新證書
如果出現(xiàn)Congratulations!字樣或者已經(jīng)更新字樣則證明可以自動(dòng)更新。如果出現(xiàn)錯(cuò)誤,或者說路徑找不到的情況,大多數(shù)情況是.well-known/acme-challenge目錄配置沒有正確的配置成功
編寫crontab腳本$ crontab -e
腳本內(nèi)容
30 2 * * 1 /opt/letsencrypt/letsencrypt-auto renew >> /var/log/le-renew.log
如果遇到權(quán)限問題,可先創(chuàng)建/var/log目錄再設(shè)置其權(quán)限為可寫入成功
享受https的綠色小鎖吧!
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/40016.html
摘要:主題旨在追求簡約操作簡單閱讀舒適度。英文版介紹,目前版本主要調(diào)整了整體的樣式,布局細(xì)調(diào),以及新增一些等,后期會(huì)在使用的過程中不斷進(jìn)行調(diào)整。您可以使用減記語法或標(biāo)簽插件添加你的照片。 hexo-theme-cafe Cafe 主題旨在追求簡約、操作簡單、閱讀舒適度。 英文版介紹 Read in English Inspire by Landscape,目前版本主要調(diào)整了整體的樣式,布局細(xì)...
摘要:主題旨在追求簡約操作簡單閱讀舒適度。英文版介紹,目前版本主要調(diào)整了整體的樣式,布局細(xì)調(diào),以及新增一些等,后期會(huì)在使用的過程中不斷進(jìn)行調(diào)整。您可以使用減記語法或標(biāo)簽插件添加你的照片。 hexo-theme-cafe Cafe 主題旨在追求簡約、操作簡單、閱讀舒適度。 英文版介紹 Read in English Inspire by Landscape,目前版本主要調(diào)整了整體的樣式,布局細(xì)...
摘要:主題旨在追求簡約操作簡單閱讀舒適度。英文版介紹,目前版本主要調(diào)整了整體的樣式,布局細(xì)調(diào),以及新增一些等,后期會(huì)在使用的過程中不斷進(jìn)行調(diào)整。您可以使用減記語法或標(biāo)簽插件添加你的照片。 hexo-theme-cafe Cafe 主題旨在追求簡約、操作簡單、閱讀舒適度。 英文版介紹 Read in English Inspire by Landscape,目前版本主要調(diào)整了整體的樣式,布局細(xì)...
摘要:每周前端開源推薦第四期上一期介紹了很多實(shí)時(shí)框架,不知大家有沒有去體驗(yàn)一下實(shí)時(shí)的樂趣。在上面融了,上周在上面開源,一周的時(shí)間,數(shù)已經(jīng)了,火的一塌糊涂。 每周前端開源推薦第四期 mozilla / togetherjs A service for your website that makes it surprisingly easy to collaborate in real...
閱讀 1830·2021-11-23 09:51
閱讀 950·2021-10-08 10:05
閱讀 3434·2021-09-26 09:55
閱讀 1045·2021-09-22 15:21
閱讀 1635·2021-09-09 09:33
閱讀 1274·2019-08-30 15:56
閱讀 1287·2019-08-30 15:55
閱讀 971·2019-08-30 13:19