下面分 两种常见场景 说明如何“配置 OpenSSL 服务”。如果你指的是 TLS/HTTPS 服务(最常见),请重点看 第一部分。
OpenSSL 本身不是一个服务程序,而是 提供加密能力的库和工具。
真正意义上的“OpenSSL 服务”通常是:
- Nginx + OpenSSL
- Apache + OpenSSL
- 自己用 OpenSSL 写的服务程序
下面以 Nginx + OpenSSL 为例(最常见、最实用)。
yum install -y openssl openssl-devel nginx
apt update
apt install -y openssl nginx
检查版本:
openssl version
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:证书openssl req -new -newkey rsa:2048 \
-keyout server.key \
-out server.csr
编辑 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;
}
}
nginx -t
systemctl restart nginx
访问:
https://服务器IP
# firewalld
firewall-cmd --add-service=https --permanent
firewall-cmd --reload
# iptables
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
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
⚠️ 不适合生产环境
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;
add_header Strict-Transport-Security "max-age=31536000";
ssl_ciphers 'TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256';
请告诉我:
我可以给你 完整服务端 + 客户端示例。
OpenSSL 不单独作为服务运行,而是为 Nginx / Apache / 应用程序提供 TLS 加密能力。
如果你愿意,可以告诉我:
我可以给你 完全贴合你环境的配置方案。