温馨提示×

如何配置openssl服务

小樊
38
2026-07-01 15:32:11
栏目: 云计算

下面分 两种常见场景 说明如何“配置 OpenSSL 服务”。如果你指的是 TLS/HTTPS 服务(最常见),请重点看 第一部分


一、使用 OpenSSL 配置 TLS/HTTPS 服务(推荐理解方式)

OpenSSL 本身不是一个服务程序,而是 提供加密能力的库和工具
真正意义上的“OpenSSL 服务”通常是:

  • Nginx + OpenSSL
  • Apache + OpenSSL
  • 自己用 OpenSSL 写的服务程序

下面以 Nginx + OpenSSL 为例(最常见、最实用)。


1️⃣ 安装 OpenSSL 和 Nginx

CentOS / Rocky / Alma

yum install -y openssl openssl-devel nginx

Ubuntu / Debian

apt update
apt install -y openssl nginx

检查版本:

openssl version

2️⃣ 生成 SSL 证书(OpenSSL 核心步骤)

✅ 生成私钥和自签名证书(测试用)

openssl req -x509 -nodes -days 365 \
  -newkey rsa:2048 \
  -keyout /etc/ssl/private/server.key \
  -out /etc/ssl/certs/server.crt

参数说明:

  • req:证书请求
  • -x509:自签名证书
  • -days 365:有效期
  • -newkey rsa:2048:生成 2048 位 RSA 密钥
  • keyout:私钥
  • out:证书

✅ 生成 CSR(用于 CA 或真实证书)

openssl req -new -newkey rsa:2048 \
  -keyout server.key \
  -out server.csr

3️⃣ 配置 Nginx 使用 OpenSSL(TLS 服务)

编辑 Nginx 配置:

vim /etc/nginx/conf.d/ssl.conf

示例配置:

server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate     /etc/ssl/certs/server.crt;
    ssl_certificate_key /etc/ssl/private/server.key;

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

    location / {
        root /usr/share/nginx/html;
        index index.html;
    }
}

4️⃣ 测试并启动服务

nginx -t
systemctl restart nginx

访问:

https://服务器IP

5️⃣ 防火墙放行 443

# firewalld
firewall-cmd --add-service=https --permanent
firewall-cmd --reload

# iptables
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

二、直接用 OpenSSL 启动“测试服务”(不推荐生产)

OpenSSL 可以临时当 HTTPS 服务器(仅测试):

openssl s_server \
  -key /etc/ssl/private/server.key \
  -cert /etc/ssl/certs/server.crt \
  -accept 4433

客户端测试:

openssl s_client -connect 127.0.0.1:4433

⚠️ 不适合生产环境


三、Apache + OpenSSL(简要)

yum install httpd mod_ssl

证书路径:

/etc/pki/tls/certs/
/etc/pki/tls/private/

启用 SSL:

systemctl enable httpd
systemctl start httpd

四、常见配置优化(重要)

✅ 禁用不安全协议

ssl_protocols TLSv1.2 TLSv1.3;

✅ 启用 HSTS

add_header Strict-Transport-Security "max-age=31536000";

✅ 使用强加密套件

ssl_ciphers 'TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256';

五、如果你指的是“OpenSSL 服务端编程”

请告诉我:

  • 使用语言(C / Python / Java)
  • 是否做 双向 TLS(mTLS)
  • 是否用于 内网服务 / 对外 HTTPS

我可以给你 完整服务端 + 客户端示例


✅ 总结一句话

OpenSSL 不单独作为服务运行,而是为 Nginx / Apache / 应用程序提供 TLS 加密能力。

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

  • 操作系统
  • 使用场景(Web / API / 内网通信)
  • 是否用真实域名

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

0