在搭建本地开发环境、内网服务或测试网站时,你是否经常遇到浏览器提示“不安全”?其实,通过Ubuntu自签HTTPS证书,你可以免费为自己的服务启用 HTTPS,而且无需依赖第三方 CA。本文将带你一步步完成整个过程,并提前踩掉所有常见“坑”,确保你一次成功!
自签名证书(Self-Signed Certificate)是由你自己生成的 SSL/TLS 证书,虽然浏览器不会默认信任它(会显示“不安全”警告),但非常适合用于:
- 本地开发环境
- 内网服务器(如家庭 NAS、监控系统)
- 测试 HTTPS 功能
它完全永久免费,且不受 Let's Encrypt 等公共 CA 的 90 天有效期限制。
你需要:
openssl(通常默认已安装)
打开终端,执行以下命令生成一个 4096 位强度的私钥和有效期为 36500 天(约100年)的自签名证书:
sudo openssl req -x509 \ -nodes \ -days 36500 \ -newkey rsa:4096 \ -keyout /etc/ssl/private/selfsigned.key \ -out /etc/ssl/certs/selfsigned.crt \ -subj "/C=CN/ST=YourState/L=YourCity/O=YourOrg/CN=yourdomain.local" 参数说明:
-x509:生成自签名证书而非证书请求-nodes:不加密私钥(避免每次启动服务都输密码)-days 36500:设置超长期限(实现“永久”效果)-subj:自动填充证书信息,避免交互式输入localhost、192.168.1.100)私钥必须严格保护,否则可能被窃取导致安全风险:
sudo chmod 600 /etc/ssl/private/selfsigned.keysudo chown root:root /etc/ssl/private/selfsigned.key 这一步很多人忽略,结果 Nginx/Apache 启动失败,报错“Permission denied”。务必设置正确权限!
以 Nginx 为例,编辑站点配置文件(如 /etc/nginx/sites-available/default):
server { listen 443 ssl; server_name yourdomain.local; ssl_certificate /etc/ssl/certs/selfsigned.crt; ssl_certificate_key /etc/ssl/private/selfsigned.key; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; location / { root /var/www/html; index index.html; }} 保存后,测试配置并重载 Nginx:
sudo nginx -tsudo systemctl reload nginx 为了让浏览器不再显示“不安全”,你可以将证书导入到系统或浏览器的信任库中。在 Ubuntu 桌面环境中:
# 复制证书到系统信任目录sudo cp /etc/ssl/certs/selfsigned.crt /usr/local/share/ca-certificates/selfsigned.crt# 更新证书信任库sudo update-ca-certificates 之后,Chrome/Firefox 在访问该域名时将不再警告(需重启浏览器)。对于 Windows 或 macOS 客户端,需手动导入证书。
sudo ufw allow 443。通过本教程,你已经掌握了如何在 Ubuntu 上生成并部署永久免费的自签名 HTTPS 证书。虽然它不适合公网生产环境,但在开发、测试和内网场景中非常实用。记住:正确的 CN 设置、严格的文件权限、以及客户端信任,是成功的关键三要素。
现在,你已经避开了所有新手常踩的坑,可以自信地为你的服务启用 HTTPS 了!如果你觉得这篇自签名证书教程对你有帮助,欢迎分享给更多需要的人。
© 2024 HTTPS 配置指南 | 专注 Ubuntu 自签 HTTPS 证书实践
本文由主机测评网于2026-03-01发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/20260327985.html