现如今网站使用 HTTPS 协议访问已是趋势所向,使用 HTTP 协议访问网站时浏览器会提示此网站不安全,造成访问用户的担忧,且搜索引擎也会降低对不支持 HTTPS 协议的网站的展示次数,故申请一个证书是时代之所趋。
安装 acme.sh
curl https://get.acme.sh | sh -s email=my@example.com
将命令中的邮箱地址改为自己的邮箱地址,用于 CA 机构的注册。
建议先执行以下命令运行 acme.sh,初次运行 acme.sh 其会自动创建环境变量,下次运行便可以直接执行 acme.sh 而不需要指明路径。
~/.acme.sh/acme.sh
获取证书
获取证书前需要验证域名的所有权,一般使用 Webroot 网站根目录验证,DNS API 和独立验证三种方式。
Webroot 网站根目录验证
acme.sh --issue -d iostreamx.com -d www.iostreamx.com --webroot /home/wwwroot/mydomain.com/
其中选项 -d 后填写需要颁发证书的域名,选项 –webroot 后填写网站根目录的绝对路径。
DNS API
acme.sh 可以通过 DNS API 自动添加 TXT 记录进行域名验证,且支持 Cloudflare, DNSPod 等 DNS 解析商。
以 Cloudflare 为例,其他解析商操作查看官方教程。
Cloudflare 有两种 DNS API,分别为 全局 API 和 API 令牌。
全局 API
登录 Cloudflare 控制台,选择你需要获取证书的域名。
点击右上角头像进入我的个人资料,选择 API 令牌,找到下方的 Global API Key 并点击查看。
复制 Global API Key,并将其和注册 Cloudflare 邮箱添加到环境变量
export CF_key="Global API Key"
export CF_Email="mail@iostreamx.com"
命令 acme.sh 使用 Cloudflare DNS API 方式进行域名验证并且颁发证书
acme.sh --dns dns_cf -d iostreamx.com -d www.iostreamx.com
API 令牌
在网站概述页面侧边栏找到 API,复制帐户 ID。
在 API 令牌 选项卡中点击 “创建令牌”,使用 ”编辑区域 DNS“ 模板,在区域资源中选择包括你需要获取证书的域名。
创建令牌,复制并保存好 Token。
⚠ 注意:该 Token 仅会展示一次,请妥善保存。
将 API Token 和 帐户 ID 添加到环境变量
export CF_Token="API Token"
export CF_Account_ID="帐户 ID"
命令 acme.sh 使用 Cloudflare DNS API 方式进行域名验证并且颁发证书
acme.sh --dns dns_cf -d iostreamx.com -d www.iostreamx.com
独立验证
独立验证需要服务器的 80 端口没有被占用,所以不推荐使用。
独立验证方式需要使用 socat。
CentOS
sudo dnf install -y socat
Ubuntu / Debian
sudo apt update
sudo apt install -y socat
执行以下命令进行域名验证并且颁发证书
acme.sh --issue -d iostreamx.com -d www.iostreamx.com --standalone
发表回复
要发表评论,您必须先登录。