全站HTTPS升级系列之二:基于acme.sh从Letsencrypt生成免费的泛域名证书
2024.01.08 14:45浏览量:12简介:本文将介绍如何使用acme.sh脚本和Letsencrypt服务生成免费的泛域名证书,从而实现全站HTTPS升级。我们将分步骤详细解释整个过程,并提供常见问题的解决方案,让您轻松完成证书的申请和部署。
在全站HTTPS升级系列的前一篇文章中,我们介绍了HTTPS的基本概念和优势,以及如何选择合适的证书颁发机构(CA)。接下来,我们将重点介绍如何使用acme.sh脚本和Letsencrypt服务生成免费的泛域名证书。
一、准备工作
在开始之前,请确保您的服务器已安装以下软件:
- acme.sh脚本:这是一个用于处理Letsencrypt证书的开源脚本。您可以从GitHub上获取最新版本的脚本:https://github.com/acme-tiny/acme.sh
- OpenSSL:这是一个强大的加密工具,用于生成自签名证书或与CA交互。大多数Linux发行版默认已安装OpenSSL。
二、安装acme.sh脚本 - 下载acme.sh脚本并解压:
cd /root
wget https://github.com/acme-tiny/acme.sh/releases/download/v最新版本号/acme.sh
chmod +x acme.sh
- 初始化脚本:
./acme.sh --install
- 运行脚本检查是否安装成功:
如果出现版本信息,表示安装成功。./acme.sh --version
三、生成密钥和CSR(证书签名请求) - 生成密钥:
openssl genrsa 2048 > private.key
- 生成CSR:
根据提示输入相关信息(如国家、组织、常用名等)。openssl req -new -key private.key -out server.csr
四、提交CSR并获取证书 - 运行acme.sh脚本提交CSR:
将“域名”替换为您的域名或域名列表,例如“example.com”、“www.example.com”。此命令将提交CSR并获取证书。./acme.sh --issue -d 域名 --cert-home /root/ssl --account-key /root/private.key -k /root/server.csr
- 获取证书文件:证书文件将保存在/root/ssl目录下。默认情况下,证书文件名为“fullchain.cer”。
五、部署证书 - 将证书文件复制到服务器上的适当位置,例如/etc/nginx/ssl。如果您使用的是其他Web服务器(如Apache),请将证书文件复制到相应的目录。
- 根据您使用的Web服务器配置文件,将证书文件添加到配置中,并启用HTTPS监听端口。例如,对于Nginx服务器,您需要编辑Nginx配置文件(通常位于/etc/nginx/nginx.conf或/etc/nginx/conf.d/default.conf),添加以下内容:
```bash
server {
listen 443 ssl;
server_name 域名;
ssl_certificate /etc/nginx/ssl/fullchain.cer;
ssl_certificate_key /etc/nginx/ssl/private.key;其他配置项…
}
```请将“域名”替换为您的域名或域名列表。确保将证书文件的路径和密钥文件的路径更改为实际路径。 - 重新加载Nginx配置以使更改生效:
bash nginx -t nginx -s reload
如果您使用的是其他Web服务器,请根据其文档重新加载配置。 - 现在,您的服务器已经成功配置为使用HTTPS协议,并且可以安全地通过浏览器访问您的网站了。请确保在浏览器地址栏中查看网址以确保已启用HTTPS协议。六、常见问题及解决方案在生成和部署证书的过程中,可能会遇到一些常见问题。以下是几个常见问题的解决方案:1. 问题:出现“您的申请与现有冲突”错误解决方案:请确保您在申请证书时使用的域名和域名列表是唯一的,并且与现有证书或其他申请不冲突。2. 问题:出现“验证失败”错误解决方案
发表评论
登录后可评论,请前往 登录 或 注册