可采用三种方法启用HTTPS:一、用Certbot自动获取Let's Encrypt证书并配置Nginx;二、用acme.sh脚本通过DNS API申请泛域名证书并手动部署;三、用OpenSSL生成自签名证书用于测试。

如果您需要在Linux服务器上快速启用HTTPS加密通信,则必须为网站域名生成并配置有效的SSL安全证书。以下是实现该目标的多种可行方法:
一、使用Certbot自动获取并部署Let's Encrypt证书
Certbot是官方推荐的Let's Encrypt客户端,支持自动验证域名所有权、申请证书、安装及定期续订,适用于Nginx和Apache等主流Web服务器。
1、确保系统已安装snapd服务,并更新至最新版本。
2、运行命令安装certbot:sudo snap install --classic certbot。
3、创建符号链接使certbot命令全局可用:sudo ln -s /snap/bin/certbot /usr/bin/certbot。
4、执行自动配置命令(以Nginx为例):sudo certbot --nginx -d example.com -d www.example.com。
5、按提示选择是否强制HTTPS重定向,Certbot将自动修改Nginx配置并重载服务。
二、通过acme.sh脚本手动签发并部署证书
acme.sh是一个纯Shell编写的ACME协议客户端,无需root权限即可运行,支持DNS API自动验证,适合无公网IP或需泛域名证书的场景。
1、执行安装命令:curl https://get.acme.sh | sh -s email=my@example.com。
2、重载环境变量:source ~/.acme.sh/acme.sh.env。
3、使用DNS API方式申请泛域名证书(以Cloudflare为例):export CF_Key="your_api_key"; export CF_Email="my@example.com"; acme.sh --issue --dns dns_cf -d example.com -d *.example.com。
4、部署证书到Nginx指定路径:acme.sh --install-cert -d example.com --key-file /etc/nginx/ssl/example.key --fullchain-file /etc/nginx/ssl/example.crt。
5、手动编辑Nginx配置文件,在server块中添加ssl_certificate和ssl_certificate_key指令,指向上述路径。
三、使用OpenSSL本地生成自签名证书用于测试
自签名证书不被浏览器信任,仅适用于开发环境或内网服务的HTTPS功能验证,无需联网或域名解析。
1、创建专用目录存放证书文件:sudo mkdir -p /etc/ssl/private/example。
2、生成2048位RSA私钥:sudo openssl genrsa -out /etc/ssl/private/example.key 2048。
3、生成CSR(证书签名请求)文件,填写域名信息时Common Name必须为实际访问域名:sudo openssl req -new -key /etc/ssl/private/example.key -out /etc/ssl/private/example.csr。
4、自签名生成有效期365天的证书:sudo openssl x509 -req -days 365 -in /etc/ssl/private/example.csr -signkey /etc/ssl/private/example.key -out /etc/ssl/private/example.crt。
5、修改Nginx配置,设置ssl_certificate为.crt路径,ssl_certificate_key为.key路径,并重启服务:sudo systemctl restart nginx。










