如何使用OpenSSL生成和配置Nginx的SSL/TLS证书
海外云服务器 40个地区可选 亚太云服务器 香港 日本 韩国
云虚拟主机 个人和企业网站的理想选择 俄罗斯电商外贸虚拟主机 赠送SSL证书
美国云虚拟主机 助力出海企业低成本上云 WAF网站防火墙 为您的业务网站保驾护航
OpenSSL是一个开源的软件项目,用于安全套接层和传输层安全性协议(SSL/TLS)证书的创建、管理和验证,以下是如何使用OpenSSL生成SSL/TLS证书并配置Nginx的基本步骤:,1. **安装OpenSSL**:首先确保在服务器上已安装了OpenSSL。,2. **生成私钥文件**:使用openssl genpkey
命令为您的服务器生成一个私钥文件。,3. **生成证书请求文件**:使用openssl req -new
命令生成一个包含域名信息的证书请求文件。,4. **创建自签名证书**:通过openssl x509
命令创建一个自签名的SSL证书。,5. **配置Nginx**:将生成的SSL证书和私钥文件添加到Nginx的虚拟主机配置中,并设置正确的证书路径。,这些步骤可以帮助您在服务器上部署SSL/TLS证书,从而保护网站数据的安全性。
确保您的系统上已安装 OpenSSL,如果没有,请访问 OpenSSL 官方网站并下载适用于您操作系统的最新版本。
wget https://slproweb.com/download/Win32OpenSSL-1_1_1f.zip unzip Win32OpenSSL-1_1_1f.zip -d C:\Program Files\OpenSSL-Win64
解压后,需要将 C:\Program Files\OpenSSL-Win64
目录添加到系统的环境变量中,以便在命令行中直接调用 OpenSSL 命令。
步骤 2: 创建自签名证书
自签名证书是一种简便的方法,在开发或测试环境中提供基本的加密功能而无需实际获取第三方证书颁发机构(CA)的证书。
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout mycert.key -out mycert.crt
这会生成两个文件:mycert.key
和 mycert.crt
, 分别包含私钥和证书信息。
步骤 3: 编辑 Nginx 配置文件
打开 Nginx 的主配置文件 /etc/nginx/nginx.conf
(或 /usr/local/nginx/conf/nginx.conf
),找到类似于以下的服务器块定义:
server { listen 80; server_name example.com www.example.com; location / { root /var/www/html; index index.html index.htm; } }
我们需要添加 SSL 相关的部分来启用 HTTPS 支持,通过添加新的 <listen>
指令来指定特定端口(443),然后加上 SSL 密钥和证书:
server { listen 80; server_name example.com www.example.com; location / { root /var/www/html; index index.html index.htm; } # SSL Configuration listen 443 ssl; # Listen on port 443 for HTTPS traffic ssl_certificate /etc/ssl/certs/mycert.crt; # Path to your certificate file ssl_certificate_key /etc/ssl/private/mycert.key; # Path to your key file }
请根据实际情况调整路径名,确保与之前创建的证书和密钥文件一致。
步骤 4: 测试 SSL 设置
为了验证 Nginx 是否正确设置了 SSL,尝试从外部地址连接到你的服务器,看看是否能通过 HTTPS 访问你的网站,如果一切正常,你应该能看到浏览器的安全警告提示,但确认没有显示任何错误信息即可。
步骤 5: 实际部署
完成以上步骤后,您可以在本地主机上进行测试以确认一切工作正常,如果一切顺利,下一步就是在生产环境中部署 Nginx 配置文件,通常的做法是在生产环境中的 nginx.conf
文件中添加相同的 <listen>
和 <ssl>
指令。
步骤 6: 更新防火墙规则
确保防火墙允许 HTTP (80) 和 HTTPS (443) 端口的流量,编辑防火墙配置文件(如 iptables
或 ufw
),添加相应的规则:
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT sudo ufw enable # 对于 UFW 用户
最后一步是重启 Nginx 服务以使更改生效:
sudo systemctl restart nginx
您已经成功配置了 OpenSSL 生成 SSL/TLS 证书,并且这些证书已经被集成到了 Nginx 配置中,通过上述步骤,您可以确保所有请求都经过加密处理,从而增强安全性。