HTTPS 证书生成脚本详细讲解

前言

HTTPS证书的作用是用于保障网站的安全性。在HTTPS协议中,通过使用证书来实现客户端与服务器之间的认证和数据加密,防止中间人攻击、信息泄漏等安全问题的发生。https证书也就是SSL证书,我们首先要确定好需要 https 安全连接的域名,如果有多个域名需要 https,则可以选择多域名SSL证书或者通配符SSL证书,还有环度网信力推的 Flex 模式证书(即可以在一张SSL证书中随时添加需要https的全域名或者通配符域名。)

一、环境配置

直接打开命令行创建这些文件夹:certbot、config、work、Certbot

mkdir -p :递归创建目录,即使上级目录不存在,会按目录层级自动创建目录

python 复制代码
mkdir -p ~/.secrets/certbot
mkdir -p ~/.certbot/config
mkdir -p ~/.certbot/work
mkdir -p ~/Library/Logs/Certbot

二、配置域名的密钥

在命令行执行:open ~/.secrets/certbot

打开这个文件夹,然后把域名的密钥文件(.ini)放在里面,这个文件是在域名的后台下载的。

三、脚本编写

脚本cert-util.py的功能:用于自动化管理 SSL 证书的创建和更新。它使用 Certbot 工具与 Cloudflare 的 DNS 服务集成,通过命令行参数指定要创建或更新证书的域名。

python 复制代码
#!/usr/bin/env python3
import click
import subprocess
from os.path import expanduser


@click.command()
@click.argument('command', nargs=1, type=click.Choice(['renew', 'create']))
@click.option('--domain', '-d', default=None, help='Domain to create/renew certificate for')
def main(command, domain=None):
    if command == 'renew':
        renew()
    elif command == 'create':
        subprocess.run(['certbot', 'certonly',
                        '--dns-cloudflare',
                        '--dns-cloudflare-credentials',
                        expanduser('~/.secrets/certbot/cloudflare.ini'),
                        '--config-dir', expanduser('~/.certbot/config'),
                        '--work-dir', expanduser('~/.certbot/work'),
                        '--logs-dir', expanduser('~/Library/Logs/Certbot'),
                        '-d', domain])
    else:
        print('Command not recognized')


def renew():
    subprocess.run(['certbot', 'renew',
                    '--dns-cloudflare',
                    '--dns-cloudflare-credentials',
                    expanduser('~/.secrets/certbot/cloudflare.ini'),
                    '--config-dir', expanduser('~/.certbot/config'),
                    '--work-dir', expanduser('~/.certbot/work'),
                    '--logs-dir', expanduser('~/Library/Logs/Certbot')])

if __name__ == '__main__':
    main()

四、脚本运行的环境配置

1、在命令行执行:pip install certbot

2、在命令行执行:pip install certbot-dns-cloudflare

cert-util.py该文件是一个可执行的 Python 脚本文件。它指示该文件是一个文本文件,其中包含可执行的 Python 代码。

把脚本文件放在这个路径里

在终端给这个文件添加权限:chmod +x /opt/homebrew/bin/cert-util

五、生成SSL证书

命令行执行:cert-util create -d 域名

相关推荐
比兔代理8 小时前
正向代理与反向代理技术辨析,为什么代理 IP 属于正向代理
服务器·网络·http·ip
Lsetea14 小时前
Nginx报No required SSL certificate was sent:mTLS客户端证书排查
运维·nginx·https·ssl·openssl
K成长日志1 天前
DALI协议-Part209-颜色控制
物联网·网络协议·iot·智能照明·智能建筑·dali
ZeroNews内网穿透1 天前
内网部署 Halo 建站,用 ZeroNews 免费内网穿透安全发布到公网(无公网 IP 也能 HTTPS 访问)
docker·https·内网穿透·nas·反向代理·halo·zeronews
IPdodo_1 天前
跨境 API 调用不稳定怎么办:出口、超时重试与链路监控的实践
网络·python·网络协议
碳基修炼2 天前
排查记:本地 devServer 是 http,浏览器却把 302 重定向升级成了 https
前端·http
szephyr2 天前
HTTPS 证书申请与自动续期:acme.sh + Let‘s Encrypt 完整记录
nginx·https·acme.sh·证书续期
那年窗外下的雪.2 天前
第 02 天:Linux 权限、inode、目录项与链接
学习·http
那年窗外下的雪.2 天前
AIDC 学习日志|第 27 天|EVPN 多归属收敛时间线与 Leaf2 接管验证
网络协议·学习·http·tcpdump
j7~2 天前
【Linux】三十八.C++ 手写 HTTP 服务器:裸 socket + fork 多进程,从 HTTP 报文解析到浏览器打开网页
linux·网络·网络协议·学习·http·网络编程