在centos8上使用certbot申请通配符ssl证书
现在已不建议使用centos,centons8已被Redhat于去年(2021)年底停更官方原版镜像默认的yum源镜像列表也于2022年2月1日被搬走,现已无法正常使用,需要手动更换为国内仍存在的源,比如腾讯的源,此处不提供教程centos7也将在2024年停止更新,新机子我个人建议不要选择centos了,现有机子还能继续苟延残喘一段时间。我自己手头上的几台服务器也都还是centos的,目前只能先这样苟延残喘着了

准备工作:编译安装最新release版的python(截至目前,python3的release版是3.10.5,具体可在python官网查看)

前往python官网查看python3最新的release版本
前往python官网查看python3最新的release版本

然后检查有没有安装到gcczlib-develbzip2-developenssl-develncurses-develsqlite-develreadline-develtk-develgdbm-develxz-devellibffi-devel这些编译所需要的软件包,如果没有,自行使用yum命令安装,具体可参考这篇文档,装完之后使用自己趁手的方式将python源码丢上服务器,如果服务器位于港澳台或者国外,建议直接从python官方下载地址下载,下文中的服务器是国内的服务器,故参考这个帖子使用华为的镜像站,我这里选择使用wget命令从华为云的镜像站的python源码镜像下载,先在本地用浏览器打开华为云镜像站的链接,在链接最后面拼凑上前面从python官网得到的版本号,比如说现在我要拿3.10.5的python源码,那拼凑后的地址就是https://mirrors.huaweicloud.com/python/3.10.5/ (22.10.7更新:无意中发现华为镜像站的链接变了)https://repo.huaweicloud.com/python/3.10.5/,或者打开之后用浏览器的查找功能(一般是CTRL键+F键)查找版本号链接然后点进去,打开之后找Python-x.y.z.tgz(x.y.z换成版本号,比如3.10.5),之后直接单击以下载到本地或者右键复制链接拿到服务器上面去下载,我是拿wget命令在服务器上直接下载的,下载完之后使用tar -xzvf filename命令解压,filename换成具体文件名,解压完成之后准备工作就完成了

进入到解压出来的文件夹里面使用./configure命令进行编译前的配置

命令执行之后就耐心等待配置完成,配置完成之后使用make命令进行编译

开始编译后请耐心等待编译完成,编译完成之后使用make install命令来进行安装

耐心等待安装完成,安装完成后重启终端或者再开一个新的终端,先更换pip的源为国内源,如果是国内公有云的服务器,请自行查找相关文档,此处以腾讯软件源为例执行换源操作,执行以下命令完成换源:

pip install -i https://mirrors.cloud.tencent.com/pypi/simple pip -U
pip config set global.index-url https://mirrors.cloud.tencent.com/pypi/simple

完成换源之后使用pip3 install certbot certbot-dns-cloudflare命令安装certbot和它的cloudflare dns插件

然后前往cloudflare官网获取api token或者密钥并保存备用,创建~/.secrets/certbot/目录用来储存写有cloudflare的api身份验证信息的文件,此处以使用api token为例,your_token换成具体的token,更多用法参考插件官方文档,创建完成之后就可以申请证书了

mkdir ~/.secrets/certbot/ -p
touch ~/.secrets/certbot/cloudflare.ini
chmod 600 ~/.secrets/certbot/ -R
echo 'dns_cloudflare_api_token = your_token' > ~/.secrets/certbot/cloudflare.ini
certbot certonly --dns-cloudflare --dns-cloudflare-credentials ~/.secrets/certbot/cloudflare.ini --email username@your.email

上面的命令中username@your.email换成你自己的邮箱,首次运行它会问你同不同意用户协议,然后问你要不要跟他们分享你的邮箱地址,用户协议得同意才能继续,而分享邮箱就看你自己了,后面同一个邮箱再次运行就不会问这些,问完之后会让你输入域名,可以输入多个域名,用空格分割,支持通配符域名

申请成功之后ssl证书会放在/etc/letsencrypt/live/域名/目录下,有两个文件,一个是私钥,一个是证书,可以直接部署到nginx使用,有效期90天,需要自行部署定时任务,定期执行certbot renew --froce-renew来进行续期,不加--force-renew就是每次执行时检查到期时间,如果大于30天就不续期,加了就是每次运行都续期

参考文档:

  1. Centos 8升级至Centos 8 Stream教程 – Linux面板 – 宝塔面板论坛
  2. CentOS Project shifts focus to CentOS Stream – Blog.CentOS.org
  3. 云服务器 关于 CentOS 8终止维护公告-动态与公告-文档中心-腾讯云
  4. certbot 调用cloudflare api申请证书 – Carry00 – 博客园
  5. Welcome to certbot-dns-cloudflare’s documentation! — certbot-dns-cloudflare 0 documentation
  6. 使用腾讯云镜像源加速pip
  7. Centos8下编译安装python3.10.0_Cookie’s的博客-CSDN博客
  8. 国内环境下载python安装包 – 老K的文章 – 知乎

评论

  1. Chrome OS Chrome 101.0.4951.59
    2 年前
    2022-7-05 2:15:33

    CentOS 8 可以轉換到 CentOS Stream。另外 CentOS 上是有現成的 Python 3,可以直接找 repo 的包或者用 RHSCL……從 source 不打包直接安裝也真是……一言難盡,有點老 ops 一把梭的味道……

    • 博主
      櫻川 浅羽
      Windows Edge 103.0.1264.62
      2 年前
      2022-7-17 13:38:58

      centos8从yum源安装的python3我记得最高停留在了3.7,而现在都更新到3.10了,有些python程序要求特定版本的特定包,3.7没有

      • 櫻川 浅羽
        叶子
        Chrome OS Chrome 103.0.0.0
        2 年前
        2022-7-18 3:43:57
        1. 從這篇的需求出發,EPEL 已經有打包好的 Certbot 和 DNS Authenticator plugin;
        2. 部分系統組件也依賴 Python,為了保證這些組件的運行,不建議輕易變動系統的 Python 可執行檔;
        3. 多個版本的 Python 可以同時存在;對於需要其他特定版本的 Python 狀況,使用 virtualenv

        總之,沒有必須要替換掉系統 Python 才能解決的問題;相反,這幾乎是最差的做法,實踐中不建議這樣做。配合 virtualenv 使用多個 Python 版本是更好更 portable 的做法,何況這樣也不增加太多的成本。

        • 博主
          櫻川 浅羽
          Windows Edge 103.0.1264.62
          已编辑
          2 年前
          2022-7-19 23:11:28

          centos8已经没有centos7的那种坑爹问题了,centos7一些系统自带的python脚本的指示器是#!/usr/bin/python ,而centos8的是#!/usr/libexec/platform-python,而且直接编译安装新的python实测并不会影响到现有的python,同时我这次的操作并没有替换系统中的python,也没发现异常,大概是因为python大版本相同吧

    • 博主
      櫻川 浅羽
      Windows Edge 103.0.1264.62
      2 年前
      2022-7-17 13:44:59

      刚刚去看了下,直接yum install python3安装的是python36,然后我yum search了一下,发现最高是到39,yum install python39能安装python39,目前python官网最新的python3 release是3.10.5

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
酷安
滑稽
贴吧
上一篇
下一篇