我的日常开发记录日志
首页
  • Laravel
  • Thinkphp
  • Swoole
  • Workman
  • php
  • HTML
  • CSS
  • JavaScript
  • Vue
  • ES6
  • 小程序
  • Mysql
  • Redis
  • Es
  • MongoDb
  • Git
  • Composer
  • Linux
  • Nginx
  • Docker
  • Vpn
  • 开发实战
  • 开发工具类
  • 友情链接
💖关于
💻收藏
  • 分类
  • 标签
  • 归档数据
GitHub (opens new window)

我的日常开发记录日志

never give up
首页
  • Laravel
  • Thinkphp
  • Swoole
  • Workman
  • php
  • HTML
  • CSS
  • JavaScript
  • Vue
  • ES6
  • 小程序
  • Mysql
  • Redis
  • Es
  • MongoDb
  • Git
  • Composer
  • Linux
  • Nginx
  • Docker
  • Vpn
  • 开发实战
  • 开发工具类
  • 友情链接
💖关于
💻收藏
  • 分类
  • 标签
  • 归档数据
GitHub (opens new window)
  • git

  • composer

  • linux

  • nginx

    • Nginx
    • nginx服务器跨域配置
    • ssl免费证书生成
      • 1. 生成单个域名获取 HTTPS 证书这个修改
      • 2.生成泛域名域名获取 HTTPS 证书
        • 1. 安装Certbot和DNSPod插件
        • 2. 配置DNSPod API凭据
        • 3. 生成泛域名证书
        • 4. 处理可能的传播时间问题
        • 5. 验证证书
        • 踩坑
      • 3.使用nginx proxy manager进行证书管理
        • 3. 部署运行
        • 4. 登录管理页面=
        • 5. 快速升级=
      • 更多
        • 1. 官方文档(英文)
        • 2. 替换中文镜像
        • 3. 关于中文镜像
        • 4. 关于DNSPod创建证书失败
    • nginx负载
    • nginx在linux上操作
    • ab基本压测
  • docker

  • vpn

  • frp

  • 脚本

  • 硬件

  • 运维
  • nginx
窝窝侠
2024-06-19

ssl免费证书生成

# 1. 生成单个域名获取 HTTPS 证书这个修改

你可以使用 Let's Encrypt 免费生成 HTTPS 证书,或者使用其他证书颁发机构(CA)提供的证书。以下是使用 Let's Encrypt 和 Certbot 生成证书的步骤:

# 使用 Certbot 生成证书

  1. 安装 Certbot:

    yum install epel-release
    yum install certbot
    
    1
    2
  2. 生成证书:

    certbot certonly --standalone -d yourdomain.com
    
    1

    请将 yourdomain.com 替换为你的实际域名。Certbot 会生成证书文件,通常存放在 /etc/letsencrypt/live/yourdomain.com/ 目录下。

报错信息表明Certbot无法确定你想使用的选项,因为--dns-dnspod选项不够具体。你需要明确指定--dns-dnspod-credentials选项来提供DNSPod的凭据文件。以下是更详细的步骤来处理这个问题:

# 2.生成泛域名域名获取 HTTPS 证书

# 1. 安装Certbot和DNSPod插件

确保你已经安装了Certbot和certbot-dns-dnspod插件:

sudo pip install certbot certbot-dns-dnspod
1

# 2. 配置DNSPod API凭据

创建一个配置文件,例如/etc/letsencrypt/dnspod.ini,并添加以下内容:

#dns_dnspod_api_id = your-dnspod-api-id
#dns_dnspod_api_token = your-dnspod-api-token

dns_dnspod_email = "171997274@qq.com"
dns_dnspod_api_token = "504085,726a3b04caa8c53c625667355a2287b7"
1
2
3
4
5

确保该文件的权限设置为600,以保护你的API凭据:

sudo chmod 600 /etc/letsencrypt/dnspod.ini
1

# 3. 生成泛域名证书

使用以下命令生成泛域名证书,明确指定--dns-dnspod-credentials选项:

certbot certonly -a dns-dnspod --dns-dnspod-credentials /etc/letsencrypt/dnspod.ini  -d test.wowoxia.club    -d "*.test.wowoxia.club"
1

# 4. 处理可能的传播时间问题

有时DNS记录的传播需要一些时间,你可以通过指定--dns-dnspod-propagation-seconds来增加传播时间。例如:

certbot certonly -a dns-dnspod --dns-dnspod-credentials /etc/letsencrypt/dnspod.ini  -d test.wowoxia.club    -d "*.test.wowoxia.club"

1
2

# 5. 验证证书

你可以验证证书是否生成成功以及查看证书的详细信息:

sudo certbot certificates
1

# 踩坑

dns_dnspod_api_id和 dns_dnspod_api_token这两个参数已经不能使用了,目前最新的参数下面的,并且参数中需要加上引号,不然报错401

dns_dnspod_email = "171997274@qq.com"
dns_dnspod_api_token = "504085,726a3b04caa8c53c625667355a2287b7"
1
2

# 3.使用nginx proxy manager进行证书管理

创建一个 docker-compose.yml 文件:

version: '3'
services:
  app:
    image: 'chishin/nginx-proxy-manager-zh:release'
    restart: always
    ports:
      - '80:80'
      - '81:81'
      - '443:443'
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
1
2
3
4
5
6
7
8
9
10
11
12

# 3. 部署运行

docker-compose up -d
1

# 4. 登录管理页面=

当你的docker容器成功运行,使用浏览器访问81端口。 有些时候需要稍等一段时间。

http://127.0.0.1:81 (opens new window)

默认管理员信息:

Email:    admin@example.com
Password: changem=e
1
2

使用这个默认用户登录后,系统会立即要求您修改详细信息和密码。

# 5. 快速升级=

docker-compose down
docker-compose pull
docker-compose up -d
1
2
3

这个项目将自动更新任何数据库或其他要求,所以你不必遵循任何疯狂的指示。上面的这些步骤将提取最新的更新并重新创建docker容器。

# 更多

# 1. 官方文档(英文)

关于本应用的更多用法请访问官方文档:

  • 项目源码 (opens new window)
  • 项目官网 (opens new window)
  • 安装手册 (opens new window)
  • 高级配置 (opens new window)
  • 常见问题 (opens new window)

# 2. 替换中文镜像

当你使用官方示例的docker-compose时需要注意,将image镜像jc21/nginx-proxy-manager替换为chishin/nginx-proxy-manager-zh即可实现中文部署。

# 3. 关于中文镜像

中文镜像并没有重新构建后端代码,由Dockerfile-zh (opens new window)文件可以得知,中文镜像基于官方镜像替换前端代码来实现的,所以中文版本的全部功能与官方版本完全相同,只是显示界面的文字不同的区别。

# 4. 关于DNSPod创建证书失败

此问题在2.9.19版本开始就已经存在,原因是zope引起的,由于ARM架构一直安装失败所以无法打包到镜像中,建议使用如下方法修复此问题:

首先确保nginx-proxy-manager-zh的Docker容器已经正常运行,使用docker-compose ps查看容器名,这里假设容器名为npm-zh。

进入容器:(注意替换下文中的容器名)

docker exec -it npm-zh bash
1

执行安装zope命令:

python3 -m pip install --upgrade pip
pip install certbot-dns-dnspod
pip install zope
1
2
3

等待安装完成,退出容器:

exit
1

最后刷新浏览器,再次使用DNSPod创建证书即可。

在线编辑 (opens new window)
上次更新: 2025/02/25, 18:30:54
nginx服务器跨域配置
nginx负载

← nginx服务器跨域配置 nginx负载→

最近更新
01
showprocess用法
04-29
02
vue3中尖括号和冒号的使用细则
04-29
03
sd使用
02-22
更多文章>
🖥️

© 2025窝窝侠 💌 豫ICP备20005263号-2 🛀 Theme by 💝 Vdoing && 小胖墩er

  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×