当前位置:首页 > 系统教程 > 正文

Ubuntu自签永久免费HTTPS证书(手把手教你避开所有坑,小白也能轻松部署)

在搭建本地开发环境、内网服务或测试网站时,你是否经常遇到浏览器提示“不安全”?其实,通过Ubuntu自签HTTPS证书,你可以免费为自己的服务启用 HTTPS,而且无需依赖第三方 CA。本文将带你一步步完成整个过程,并提前踩掉所有常见“坑”,确保你一次成功!

为什么选择自签名证书?

自签名证书(Self-Signed Certificate)是由你自己生成的 SSL/TLS 证书,虽然浏览器不会默认信任它(会显示“不安全”警告),但非常适合用于:
- 本地开发环境
- 内网服务器(如家庭 NAS、监控系统)
- 测试 HTTPS 功能
它完全永久免费,且不受 Let's Encrypt 等公共 CA 的 90 天有效期限制。

准备工作

你需要:

  • 一台运行 Ubuntu 20.04/22.04 的服务器或虚拟机
  • 已安装 openssl(通常默认已安装)
  • root 权限或 sudo 权限
Ubuntu自签永久免费HTTPS证书(手把手教你避开所有坑,小白也能轻松部署) Ubuntu自签HTTPS证书 永久免费SSL证书 自签名证书教程 HTTPS配置指南 第1张

第一步:生成私钥和证书

打开终端,执行以下命令生成一个 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:自动填充证书信息,避免交互式输入
      • C = 国家代码(如 CN)
      • ST = 省份
      • L = 城市
      • O = 组织名称
      • CN = 通用名称(建议用域名或 IP,如 localhost192.168.1.100

第二步:设置文件权限(关键!)

私钥必须严格保护,否则可能被窃取导致安全风险:

sudo chmod 600 /etc/ssl/private/selfsigned.keysudo chown root:root /etc/ssl/private/selfsigned.key

这一步很多人忽略,结果 Nginx/Apache 启动失败,报错“Permission denied”。务必设置正确权限!

第三步:在 Web 服务器中启用 HTTPS

以 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 客户端,需手动导入证书。

常见问题与避坑指南

  • 坑1:CN 不匹配 → 证书中的 CN 必须与你访问的域名或 IP 一致,否则浏览器会报错。
  • 坑2:私钥权限错误 → 确保私钥只有 root 可读写(600 权限)。
  • 坑3:忘记开 443 端口 → 检查防火墙:sudo ufw allow 443
  • 坑4:证书未更新信任库 → 即使配置正确,浏览器仍会警告,除非你手动信任证书。

总结

通过本教程,你已经掌握了如何在 Ubuntu 上生成并部署永久免费的自签名 HTTPS 证书。虽然它不适合公网生产环境,但在开发、测试和内网场景中非常实用。记住:正确的 CN 设置、严格的文件权限、以及客户端信任,是成功的关键三要素。

现在,你已经避开了所有新手常踩的坑,可以自信地为你的服务启用 HTTPS 了!如果你觉得这篇自签名证书教程对你有帮助,欢迎分享给更多需要的人。

© 2024 HTTPS 配置指南 | 专注 Ubuntu 自签 HTTPS 证书实践