免费HTTPS证书在线申请教程:从申请到Nginx部署
前言
HTTPS已经成为现代网站的标配,它通过SSL/TLS加密保护用户数据传输安全,同时也是搜索引擎排名的重要因素。本文将详细介绍如何在线免费申请HTTPS证书,并将其部署到Nginx服务器。
什么是在线申请HTTPS证书?
在线申请HTTPS证书是指通过基于ACME协议的SSL证书服务平台,无需安装命令行工具,在网页上即可完成证书的申请、验证和下载。相比传统的certbot、acme.sh等命令行工具,在线申请更加直观,适合不熟悉命令行的用户。
申请前的准备工作
在开始申请之前,您需要准备以下内容:
- 域名:已注册并正常解析的域名(如 example.com)
- DNS管理权限:能够添加DNS记录(TXT类型),用于域名所有权验证
- 服务器:一台已安装Nginx的服务器(用于部署证书)
第一步:填写域名信息
登录HiOFD SSL证书服务平台后,点击「申请证书」。在域名输入框中填写您需要保护的域名。支持以下类型:
- 单域名:如 www.hiofd.com
- 多域名:如 hiofd.com, www.hiofd.com, ssl.hiofd.com
- 通配符域名:如 *.hiofd.com(保护所有子域名)
选择加密算法(推荐RSA 2048,兼容性最好),然后选择CSR生成方式——可以系统自动生成,也可以上传您自己生成的CSR文件。
第二步:选择验证方式并完成验证
SSL证书需要验证您对域名的所有权,常用的验证方式有两种:
DNS验证(推荐)
系统会生成一条或多条TXT记录,您需要将该记录添加到域名的DNS解析中。具体操作:
- 复制系统提供的主机记录和记录值
- 登录您的域名DNS管理面板(如阿里云、腾讯云DNS控制台)
- 添加对应的TXT类型的DNS记录
- 等待DNS生效(一般很快,一分钟之内,也可能需要几分钟)
- 点击「验证」按钮
如果您配置了云平台API凭证(如阿里云AccessKey),平台可以自动为您添加DNS记录,无需手动操作。
HTTP验证
系统会提供一个验证文件,您需要将该文件放到网站根目录下的指定路径。如果是nginx,你也可以按照提示直接复制nginx配置,直接配置上即可。HTTP验证适用于域名已指向服务器且服务器已在运行的情况。
第三步:证书签发与下载
验证通过后,证书会在几分钟内自动签发。签发完成后,您可以下载证书文件。平台通常提供多种服务器格式的证书包:
- Nginx:包含 .pem(证书链)和 .key(私钥)文件
- Apache:包含 .crt、.key 和 CA链文件
- Tomcat/IIS:提供 .pfx 格式
根据您的服务器类型选择对应的格式下载。
第四步:部署到Nginx服务器
下载Nginx格式的证书包后,解压会得到两个文件:
example.com.pem— 证书文件(包含完整证书链)example.com.key— 私钥文件
4.1 上传证书到服务器
将证书文件上传到服务器,建议放在Nginx配置目录下:
# 创建证书存放目录
sudo mkdir -p /etc/nginx/certs/
# 使用scp上传(在本地执行)
scp example.com.pem example.com.key root@your-server:/etc/nginx/certs/
4.2 配置Nginx
编辑Nginx配置文件(通常在 /etc/nginx/nginx.conf 或/usr/local/nginx/conf/nginx.conf 或 /etc/nginx/nginx.conf):
server {
listen 443 ssl http2;
server_name example.com www.example.com;
ssl_certificate /etc/nginx/certs/example.com.pem;
ssl_certificate_key /etc/nginx/certs/example.com.key;
# 推荐的SSL安全配置
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
location / {
root /var/www/html;
index /index.html;
}
}
# HTTP自动跳转HTTPS
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$host$request_uri;
}
4.3 测试并重载Nginx
# 测试配置是否正确
sudo nginx -t
# 如果配置正确,重载Nginx
sudo nginx -s reload
验证HTTPS是否生效
打开浏览器访问 https://example.com,如果看到地址栏显示锁形图标,说明HTTPS证书已正确部署。您也可以使用在线SSL检测工具检查证书配置是否完善。
常见问题
证书有效期是多久?
通过ACME协议签发的免费DV证书有效期通常为90天。建议开启自动续签功能,平台会在证书到期前自动完成续签和部署。
申请通配符证书需要注意什么?
通配符证书(*.example.com)只能使用DNS验证方式,不支持HTTP验证。申请时请确保您有DNS管理权限。
部署后浏览器提示证书不受信任?
通常是因为证书链不完整。请确保下载的是包含完整证书链的.pem文件,而非单独的证书文件。