摘要:可以使用多個添加多個域名可以幫我們自動注冊證書,是靜態資源所指的路徑。輸入命令之后選擇即可,后續將會讓你繼續輸入郵箱信息如果出現字樣,則證明證書已被自動注冊。
本文以Debian 8為服務器栗子
最近升級了個人博客為https協議,寫一個詳細的教程幫助更多人升級https。
https的詳細原理在此文中省略,簡略來說,既是客戶端在訪問服務器時需要一個數字證書(里面包括公鑰),它由權威機構(CA, Certificate Authority)頒發,來確認公鑰確實是服務器發出來的。
證書價格不菲,大概7天需要幾美金到幾百美金不等(根據認證的等級和域名覆蓋范圍區分),所以很多證書都是商業級的,提供給商業網站使用。
獲取免費證書那么個人將無法獲取數字證書么?不是的,為了鼓勵https的普及,EFF成立了免費證書最大的提供商為Let’s Encrypt,可以提供免費證書。那么小型的網站,就可以使用免費證書升級為https啦。
當然Let’s Encrypt生成的證書,只能是單域名的,而且只有最低級的域名驗證。
克隆letsencrypt客戶端$ git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt
如果遇到權限問題,記得先創建/opt/letsencrypt文件夾再,更改文件夾權限為可寫入。注冊證書 Nginx指向靜態路徑注冊證書
注冊一個域名證書非常簡單,使用letsencrypt就能生成https所需的證書。當然,用letsencrypt生成的證書只支持域名驗證,只需要用letsenctypt的自動注冊證書命令,證明這個域名是自己的是用的即可。
$ cd /opt/letsencrypt $ ./letsencrypt-auto certonly -a webroot --webroot-path=/var/www/me -d me.chanchun.com.cn # 可以使用多個 -d 添加多個域名
letsencrypt可以幫我們自動注冊證書,--webroot-path是靜態資源所指的路徑。-d是域名域名,也可以多個-d增加多個域名。最后確保使用https的域名都被letsencrypt注冊。
后續將會讓你繼續輸入郵箱信息
如果出現Congratulations!字樣,則證明證書已被自動注冊。
Nginx轉發型注冊證書如果是使用Nginx直接重定向服務器本地服務,非靜態資源,就省略--webroot-path和-a參數。
$ 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即可,后續將會讓你繼續輸入郵箱信息
如果出現Congratulations!字樣,則證明證書已被自動注冊。
Nginx配置直到這一步,證書已經就緒,只要配置好Nginx即可完美升級https。Nginx安裝、啟動教程請具體請教Nginx教程。
轉發到本地服務Nginx配置Sample:#http重定向到https配置 證書驗證配置 server { listen 80; server_name ca.chanchun.com.cn; # 這里寫你的域名 location ^~ /.well-known/acme-challenge/ { # 不要修改 letsencrypt需要驗證你的域名 default_type "text/plain"; proxy_pass http://localhost:3000; # 填寫你需要轉發的服務器地址 } location = /.well-known/acme-challenge/ { # 不要修改 letsencrypt需要驗證你的域名 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; # 填寫你需要轉發的服務器地址 } }指向靜態文件Nginx配置Sample:
server { listen 80; server_name me.chanchun.com.cn; # 這里寫你的域名 location ^~ /.well-known/acme-challenge/ { default_type "text/plain"; root /var/www/me; # 這里寫你的靜態文件目錄 } 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; # 這里寫你的靜態文件目錄 index index.html index.htm; # 這里寫你暴露的靜態文件 } }
Nginx配置各有各的配置方法,這里只要保證四點:
域名配置正確
靜態文件目錄路徑、本地服務目錄路徑配置正確
.well-known/acme-challenge目錄配置正確
要保證80默認端口和443ssl端口都有配置
如果配置好Nginx,那么訪問網站就會有綠色的小鑰匙啦,說明你的https站點搭建好。
自動更新證書letsencrypt證書最多只有90天,90天之后我們需要重新注冊證書,當然這個可以交給服務器自己做啦。
驗證自己的證書是否可以更新$ cd /opt/letsencrypt $ ./letsencrypt-auto renew --dry-run
此命令只是驗證 不會更新證書
如果出現Congratulations!字樣或者已經更新字樣則證明可以自動更新。如果出現錯誤,或者說路徑找不到的情況,大多數情況是.well-known/acme-challenge目錄配置沒有正確的配置成功
編寫crontab腳本$ crontab -e
腳本內容
30 2 * * 1 /opt/letsencrypt/letsencrypt-auto renew >> /var/log/le-renew.log
如果遇到權限問題,可先創建/var/log目錄再設置其權限為可寫入成功
享受https的綠色小鎖吧!
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/40016.html
摘要:主題旨在追求簡約操作簡單閱讀舒適度。英文版介紹,目前版本主要調整了整體的樣式,布局細調,以及新增一些等,后期會在使用的過程中不斷進行調整。您可以使用減記語法或標簽插件添加你的照片。 hexo-theme-cafe Cafe 主題旨在追求簡約、操作簡單、閱讀舒適度。 英文版介紹 Read in English Inspire by Landscape,目前版本主要調整了整體的樣式,布局細...
摘要:主題旨在追求簡約操作簡單閱讀舒適度。英文版介紹,目前版本主要調整了整體的樣式,布局細調,以及新增一些等,后期會在使用的過程中不斷進行調整。您可以使用減記語法或標簽插件添加你的照片。 hexo-theme-cafe Cafe 主題旨在追求簡約、操作簡單、閱讀舒適度。 英文版介紹 Read in English Inspire by Landscape,目前版本主要調整了整體的樣式,布局細...
摘要:主題旨在追求簡約操作簡單閱讀舒適度。英文版介紹,目前版本主要調整了整體的樣式,布局細調,以及新增一些等,后期會在使用的過程中不斷進行調整。您可以使用減記語法或標簽插件添加你的照片。 hexo-theme-cafe Cafe 主題旨在追求簡約、操作簡單、閱讀舒適度。 英文版介紹 Read in English Inspire by Landscape,目前版本主要調整了整體的樣式,布局細...
摘要:每周前端開源推薦第四期上一期介紹了很多實時框架,不知大家有沒有去體驗一下實時的樂趣。在上面融了,上周在上面開源,一周的時間,數已經了,火的一塌糊涂。 每周前端開源推薦第四期 mozilla / togetherjs A service for your website that makes it surprisingly easy to collaborate in real...
閱讀 1820·2021-11-23 09:51
閱讀 927·2021-10-08 10:05
閱讀 3421·2021-09-26 09:55
閱讀 1030·2021-09-22 15:21
閱讀 1626·2021-09-09 09:33
閱讀 1235·2019-08-30 15:56
閱讀 1275·2019-08-30 15:55
閱讀 958·2019-08-30 13:19