ssl免费证书生成
# 1. 生成单个域名获取 HTTPS 证书这个修改
你可以使用 Let's Encrypt 免费生成 HTTPS 证书,或者使用其他证书颁发机构(CA)提供的证书。以下是使用 Let's Encrypt 和 Certbot 生成证书的步骤:
# 使用 Certbot 生成证书
安装 Certbot:
yum install epel-release yum install certbot
1
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
# 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"
2
3
4
5
确保该文件的权限设置为600,以保护你的API凭据:
sudo chmod 600 /etc/letsencrypt/dnspod.ini
# 3. 生成泛域名证书
使用以下命令生成泛域名证书,明确指定--dns-dnspod-credentials
选项:
certbot certonly -a dns-dnspod --dns-dnspod-credentials /etc/letsencrypt/dnspod.ini -d test.wowoxia.club -d "*.test.wowoxia.club"
# 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"
2
# 5. 验证证书
你可以验证证书是否生成成功以及查看证书的详细信息:
sudo certbot certificates
# 踩坑
dns_dnspod_api_id
和 dns_dnspod_api_token
这两个参数已经不能使用了,目前最新的参数下面的,并且参数中需要加上引号,不然报错401
dns_dnspod_email = "171997274@qq.com"
dns_dnspod_api_token = "504085,726a3b04caa8c53c625667355a2287b7"
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
2
3
4
5
6
7
8
9
10
11
12
# 3. 部署运行
docker-compose up -d
# 4. 登录管理页面=
当你的docker容器成功运行,使用浏览器访问81
端口。 有些时候需要稍等一段时间。
http://127.0.0.1:81 (opens new window)
默认管理员信息:
Email: admin@example.com
Password: changem=e
2
使用这个默认用户登录后,系统会立即要求您修改详细信息和密码。
# 5. 快速升级=
docker-compose down
docker-compose pull
docker-compose up -d
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
执行安装zope
命令:
python3 -m pip install --upgrade pip
pip install certbot-dns-dnspod
pip install zope
2
3
等待安装完成,退出容器:
exit
最后刷新浏览器,再次使用DNSPod创建证书即可。