温馨提示×

linux openssl怎么配置https

小樊
40
2026-07-15 00:51:15
栏目: 云计算

在 Linux 上用 OpenSSL 配置 HTTPS,通常分三种常见场景。下面从最常用、最实用的角度一步一步讲。


一、最常见场景:Nginx + OpenSSL 配置 HTTPS(推荐)

1️⃣ 安装 Nginx 和 OpenSSL

# Ubuntu / Debian
sudo apt update
sudo apt install nginx openssl

# CentOS / Rocky / Alma
sudo yum install nginx openssl

2️⃣ 生成自签名 SSL 证书(测试用)

⚠️ 浏览器会提示“不安全”,仅适合本地测试

# 创建证书目录
sudo mkdir -p /etc/nginx/ssl

# 生成私钥和自签名证书(有效期 365 天)
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/nginx/ssl/server.key \
-out /etc/nginx/ssl/server.crt

信息填写示例:

Country Name (2 letter code) []:CN
State or Province Name []:Beijing
Organization Name []:MyCompany
Common Name []:example.com   # 重要,填域名或 IP

3️⃣ 配置 Nginx HTTPS

编辑配置文件:

sudo vim /etc/nginx/conf.d/https.conf

内容示例:

server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate /etc/nginx/ssl/server.crt;
    ssl_certificate_key /etc/nginx/ssl/server.key;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;

    root /var/www/html;
    index index.html;
}

4️⃣ 重启 Nginx

sudo nginx -t
sudo systemctl restart nginx

访问:

https://服务器IP

二、使用 Let’s Encrypt(正式 HTTPS,免费)

生产环境推荐

1️⃣ 安装 certbot

# Ubuntu
sudo apt install certbot python3-certbot-nginx

# CentOS
sudo yum install certbot python3-certbot-nginx

2️⃣ 申请证书

sudo certbot --nginx -d example.com -d www.example.com

certbot 会自动:

  • 申请证书
  • 配置 Nginx
  • 设置自动续签

3️⃣ 自动续签测试

sudo certbot renew --dry-run

三、只用 OpenSSL 测试 HTTPS(不推荐生产)

如果你只是想验证 HTTPS 原理:

openssl s_server -www -accept 4433 \
-key server.key -cert server.crt

访问:

https://127.0.0.1:4433

四、常见问题排查

❌ 浏览器提示“不安全”

  • 使用的是自签名证书
  • 用 Let’s Encrypt 可解决

❌ 443 端口无法访问

sudo netstat -tunlp | grep 443
sudo ufw allow 443

❌ 证书和域名不匹配

Common Name (CN) 必须和访问域名一致

五、总结

场景 推荐方案
本地测试 OpenSSL 自签名
服务器 HTTPS Nginx + Let’s Encrypt
学习原理 OpenSSL s_server

如果你愿意,可以告诉我:

  • ✅ 用的是 Nginx / Apache / 自己写的程序
  • ✅ 是 内网 / 公网
  • ✅ 是 测试还是生产

我可以给你完全贴合你环境的配置方案

0