日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Let’s Encrypt SSL 证书的申请与使用

發(fā)布時(shí)間:2023/12/20 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Let’s Encrypt SSL 证书的申请与使用 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Let’s Encrypt 簡(jiǎn)介

Let’s Encrypt 是免費(fèi)、開放和自動(dòng)化的證書頒發(fā)機(jī)構(gòu)。由非盈利組織互聯(lián)網(wǎng)安全研究小組(ISRG)運(yùn)營(yíng)。
SSL應(yīng)用開發(fā)者可以免費(fèi)從 Let’s Encrypt 申請(qǐng)到有效期90天的SSL證書,當(dāng)然在到期之前也可以更新證書,延長(zhǎng)有效期。
Let’s Encrypt 支持 ACME 協(xié)議,可以自動(dòng)化的完成SSL證書的申請(qǐng)、更新、吊銷等操作。
有了正規(guī)的證書頒發(fā)機(jī)構(gòu)簽發(fā)的SSL證書,才能更好的使用SSL相關(guān)功能,例如:提供支持HTTPS的網(wǎng)站。盡管可以使用自簽名的證書,但會(huì)在很多情況下收到安全警告或被禁止使用。

證書的申請(qǐng)與使用

Let’s Encrypt 支持 ACME2 開放協(xié)議,未提供WEB等申請(qǐng)途徑,目前僅能通過ACME 客戶端完成證書操作,官方推薦的 ACME 客戶端是 certbot。
最方便的方法是在WEB服務(wù)器上安裝certbot工具,完成證書管理操作。

測(cè)試環(huán)境

  • 測(cè)試環(huán)境是 Ubuntu 20.04 + Apache2;
  • 域名服務(wù)商是阿里云;

certbot 安裝

安裝方法參考certbot官方指引:https://certbot.eff.org/instructions

選擇WEB服務(wù)和操作系統(tǒng)后,會(huì)有兩個(gè)選項(xiàng):default和wildcard;其中wildcard方式需要域名服務(wù)商有相應(yīng)的 certbot DNS插件,查了一下certbot的官網(wǎng)文檔,第三方插件dns-multi可以支持阿里云DNS,這里我們先看看default方式。

環(huán)境需求

  • 可以訪問命令行,例如ssh
  • 有sudo權(quán)限
  • WEB服務(wù)器已經(jīng)部署好,并且已經(jīng)上線了80端口的WEB應(yīng)用
  • 要申請(qǐng)證書的域名已經(jīng)指向了WEB服務(wù)器

安裝certbot

使用snap安裝certbot(Ubuntu 20.04 已經(jīng)自帶snap,如果沒有,可參考官方文檔安裝)

# 先刪除系統(tǒng)自帶的版本 sudo apt-get remove certbot # 用snap安裝最新版本 sudo snap install core; sudo snap refresh core sudo ln -s /snap/bin/certbot /usr/bin/certbot

注冊(cè)賬號(hào)

在使用之前注冊(cè)賬號(hào),否則在第一次交互式使用時(shí)會(huì)提示輸入郵箱地址來(lái)注冊(cè)賬號(hào)

sudo certbot register -m 你的郵箱地址 --agree-tos

證書管理

申請(qǐng)證書

可以只申請(qǐng)證書,而不安裝到WEB服務(wù),證書也可以用于其他用途,例如自己的SSL應(yīng)用。

sudo certbot certonly --apache

這里–apache指出如何驗(yàn)證域名所有權(quán),單個(gè)域名使用HTTP驗(yàn)證,apache指出WEB服務(wù)器類型,程序據(jù)此確定具體的操作方法。如果還沒有準(zhǔn)備好WEB服務(wù)器,可以使用–standalone參數(shù)來(lái)運(yùn)行一個(gè)WEB服務(wù)器。

這里沒有加其他參數(shù),命令將以交互式的方式提示用戶輸入域名等信息,獲取證書將存儲(chǔ)在 /etc/letsencrypt/archive/你的域名/ 目錄下,最新的證書鏈接在 /etc/letsencrypt/live/你的域名/ 目錄下。

也可以用參數(shù)提供全部信息,實(shí)現(xiàn)自動(dòng)化操作

sudo certbot certonly --apache -d 你的域名,也可以有多個(gè)域名 -d 或者多次-d指定

常用子命令:

  • run 或 缺省:獲取并安裝證書到WEB服務(wù)器
  • certonly:獲取但不安裝到WEB服務(wù)器
  • renew:更新快要到期的證書(多長(zhǎng)時(shí)間到期看配置文件/etc/letsencrypt/renewal/你的域名.conf,一般是到期前30天內(nèi))

證書管理子命令:

  • certificates:查看證書信息
  • revoke:吊銷證書(需要指定–cert-name 或 --cert-path)
  • delete:刪除證書(需要指定–cert-name)

常用選項(xiàng):

  • 驗(yàn)證方式
    • –standalone:運(yùn)行獨(dú)立的web服務(wù)驗(yàn)證
    • –apache:用Apache驗(yàn)證
    • –nginx:用Nginx驗(yàn)證
    • –webroot:用webroot方式驗(yàn)證(例如tomcat)
    • –manual:手工驗(yàn)證
  • 交互選項(xiàng)
    • -n:以非交互方式運(yùn)行
    • –expand:添加更多域名時(shí)覆蓋舊證書
    • –keep-until-expiring, --keep, --reinstall:如果證書已存在,保留現(xiàn)有證書直到需要更新
    • –force-renewal, --renew-by-default:強(qiáng)制更新證書(隱含–expand)
    • –renew-with-new-domains:域名更新時(shí)強(qiáng)制更新證書
    • –allow-subset-of-names:允許部分域名驗(yàn)證失敗
  • 安全選項(xiàng)
    • –redirect:自動(dòng)將HTTP重定向到HTTPS
    • –no-redirect:不將HTTP重定向到HTTPS

申請(qǐng)并安裝證書

sudo certbot run --apache -d 你的域名

安裝證書會(huì)根據(jù)當(dāng)前80端口的網(wǎng)站配置生成一個(gè)對(duì)應(yīng)的HTTPS網(wǎng)站配置,并啟用它。
不指定–no-redirect的情況下,安裝證書時(shí)還對(duì)修改80端口的網(wǎng)站配置,將HTTP重定向到HTTPS。

更新證書

sudo certbot renew

可以把這個(gè)做成定時(shí)任務(wù),實(shí)現(xiàn)證書的自動(dòng)更新

吊銷證書

sudo certbot revoke --cert-name 你的域名

通配符證書

通配符證書是指域名為*.your.domain這樣的證書,為了驗(yàn)證域名所有權(quán),需要使用DNS驗(yàn)證方式,所有要么有相應(yīng)的DNS插件支持,要么根據(jù)提示人工完成驗(yàn)證,由于證書的有效期只有90天,每次都要人工驗(yàn)證比較麻煩,最好還是通過插件自動(dòng)完成驗(yàn)證,我的域名服務(wù)商是阿里云,查看文檔后發(fā)現(xiàn)有第三方插件dns-multi可以支持,下面來(lái)看看如何自動(dòng)完成證書申請(qǐng)。

certbot官方內(nèi)置的DNS插件以及第三方插件可參考官方文檔:https://eff-certbot.readthedocs.io/en/stable/using.html#dns-plugins

dns-multi官方網(wǎng)站:https://github.com/alexzorin/certbot-dns-multi

安裝dns-multi

還是采用snap安裝

sudo snap install certbot-dns-multi sudo snap set certbot trust-plugin-with-root=ok sudo snap connect certbot:plugin certbot-dns-multi

配置dns-multi

配置文件:/etc/letsencrypt/dns-multi.ini
根據(jù)域名服務(wù)商配置dns_multi_provider和其他參數(shù)。
dns_multi_provider 參考 https://go-acme.github.io/lego/dns/ 中 各DNS Provider的 CLI flag name ,其他參數(shù)可以參考 https://go-acme.github.io/lego/dns/ 中的各DNS Provider 鏈接的文檔,即文檔中的那些環(huán)境變量,將需要的環(huán)境變量值配置到 dns-multi.ini 文件中。

dns_multi_provider=alidns ALICLOUD_ACCESS_KEY=your-access-key ALICLOUD_SECRET_KEY=your-secret-key

為了保護(hù)ALICLOUD_SECRET_KEY,可以將dns-multi.ini的權(quán)限設(shè)置為只有本用戶可以讀寫

chmod 0600 /etc/letsencrypt/dns-multi.ini

申請(qǐng)命令

申請(qǐng)并安裝證書

sudo certbot -a dns-multi --dns-multi-credentials=/etc/letsencrypt/dns-multi.ini -d "你的域名" -d "*.你的域名"

由于之前已經(jīng)安裝過一個(gè)證書,這一次下載到了 /etc/letsencrypt/archive/你的域名-0001 目錄下,這個(gè)目錄不一定是域名,而是證書名,可以用–cert-name選項(xiàng)指定證書名,不指定會(huì)用指定的域名自動(dòng)生成。證書名會(huì)在install等其他命令里用到。

sudo certbot --cert-name "all.你的域名" -a dns-multi --dns-multi-credentials=/etc/letsencrypt/dns-multi.ini -d "你的域名" -d "*.你的域名"

這樣,證書會(huì)保存在 /etc/letsencrypt/archive/all.你的域名 目錄下,當(dāng)前版本鏈接在 /etc/letsencrypt/live/all.你的域名 目錄下。

注意: 這里證書包含了 域名 “你的域名” 和 “*.你的域名” ,安裝證書時(shí)會(huì)查找域名匹配的網(wǎng)站,“你的域名”會(huì)匹配ServerName為“你的域名”的網(wǎng)站,如果沒有,會(huì)匹配到默認(rèn)網(wǎng)站000-default;而 “*.你的域名” 匹配 www.你的域名,doc.你的域名等,如果沒有會(huì)導(dǎo)致安裝過程失敗。可以簡(jiǎn)單的復(fù)制 000-default.conf,并修改其中的ServerName參數(shù)。

完整的自動(dòng)申請(qǐng)命令

使用-n參數(shù)指定為非交互模式,會(huì)檢查參數(shù)是否足夠,如果參數(shù)不足命令會(huì)失敗而不是在執(zhí)行過程中提問,這樣用-n參數(shù)測(cè)試過能保證申請(qǐng)安裝和更新證書命令自動(dòng)運(yùn)行時(shí)不會(huì)因參數(shù)不足而報(bào)錯(cuò)。

  • 申請(qǐng)安裝證書
  • sudo certbot run -n --cert-name cert1 --apache -d "你的域名" -d "www.你的域名"

    如果是通配符證書,由于在安裝證書時(shí)需要知道那個(gè)網(wǎng)站對(duì)應(yīng)通配符證書,所以無(wú)法一步到位,需要分為下載證書和安裝證書兩步操作,在安裝時(shí)用-d指定域名

    # 下載證書 sudo certbot certonly -n --cert-name cert1 -a dns-multi --dns-multi-credentials=/etc/letsencrypt/dns-multi.ini -d "你的域名" -d "*.你的域名" # 安裝證書 sudo certbot install -n --cert-name cert1 -i apache -d 你的域名 sudo certbot install -n --cert-name cert1 -i apache -d www.你的域名
  • 更新證書
  • sudo certbot renew -n

    總結(jié)

    以上是生活随笔為你收集整理的Let’s Encrypt SSL 证书的申请与使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。