Nginx 与 SSL/TLS 证书配置:实现 HTTPS 加密通信
在当今注重网络安全和用户隐私的时代,HTTPS 加密通信已成为网站的标配。Nginx 作为一款高性能的 Web 服务器和反向代理服务器,为用户提供了便捷的 SSL/TLS 证书配置方式,以实现 HTTPS 加密通信。以下是详细的配置步骤。
一、获取 SSL/TLS 证书
- 购买证书:可以从知名的证书颁发机构(CA),如 DigiCert、Comodo、Let's Encrypt 等购买 SSL/TLS 证书。购买时需根据自身需求选择单域名证书、多域名证书或通配符证书等类型。
- 免费证书:Let's Encrypt 提供免费的 SSL/TLS 证书。可以使用 Certbot 工具来申请和管理 Let's Encrypt 证书。例如,在 Ubuntu 系统上,先安装 Certbot:
sudo apt update sudo apt install certbot python3-certbot-nginx
然后使用以下命令申请证书:
sudo certbot --nginx -d yourdomain.com
按照提示操作,Certbot 会自动与 Let's Encrypt 服务器通信并完成证书申请和 Nginx 配置的初步修改。
二、准备证书文件
无论通过何种方式获取证书,通常会得到以下文件:
- 证书文件:一般以.crt 或.cer 为扩展名,包含服务器的公钥和证书信息。
- 私钥文件:通常以.key 为扩展名,是服务器用来解密客户端请求的私钥,需妥善保管。
- 中间证书文件:用于建立证书信任链,一般以.ca - bundle 或.crt 为扩展名。
将这些文件放置在服务器上合适的目录中,例如 /etc/nginx/ssl/。
三、配置 Nginx
打开 Nginx 的配置文件,通常位于 /etc/nginx/nginx.conf 或 /etc/nginx/sites - available/yourdomain.com(具体路径可能因系统和配置而异)。在 server 块中添加以下配置:
server {
listen 443 ssl;
server_name yourdomain.com;
ssl_certificate /etc/nginx/ssl/yourdomain.com.crt;
ssl_certificate_key /etc/nginx/ssl/yourdomain.com.key;
ssl_trusted_certificate /etc/nginx/ssl/yourdomain.com.ca - bundle;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
location / {
root /var/www/html;
index index.html index.htm;
}
}
上述配置中:
listen 443 ssl;
表示 Nginx 监听 443 端口,并启用 SSL/TLS。ssl_certificate
指定证书文件路径。ssl_certificate_key
指定私钥文件路径。ssl_trusted_certificate
指定中间证书文件路径。ssl_protocols
设置允许的 SSL/TLS 协议版本,推荐使用较新的版本以提高安全性。ssl_ciphers
设置加密算法套件。
配置完成后,检查 Nginx 配置文件的语法是否正确:
sudo nginx -t
如果语法无误,重新加载 Nginx 配置:
sudo systemctl reload nginx
至此,Nginx 已成功配置 SSL/TLS 证书,实现了 HTTPS 加密通信。用户在访问网站时,浏览器地址栏会显示安全锁标志,确保数据传输的安全性和隐私性。
本文链接:https://blog.runxinyun.com/post/489.html 转载需授权!
留言0