Nginx 是一款高性能的 HTTP 和反向代理服务器,广泛应用于网站、API 服务和负载均衡等场景。在配置 HTTPS 服务时,加载信任证书是确保网站安全的关键步骤。本文将带你从入门到实战,一步步掌握如何在 Nginx 中加载信任证书。
快速入门指南
1. 准备证书文件
在开始之前,你需要确保已经拥有了信任证书。这些证书通常由证书颁发机构(CA)提供。以下是一个简单的证书文件结构:
certs/
├── server.crt
├── server.key
└── ca.crt
server.crt:你的服务器证书。server.key:你的服务器私钥。ca.crt:CA 证书,用于验证客户端证书(如果需要)。
2. 编辑 Nginx 配置文件
打开 Nginx 的配置文件,通常位于 /etc/nginx/nginx.conf 或 /etc/nginx/sites-available/your-site。以下是一个简单的配置示例:
server {
listen 443 ssl;
server_name yourdomain.com;
ssl_certificate /certs/server.crt;
ssl_certificate_key /certs/server.key;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256...';
ssl_prefer_server_ciphers on;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
3. 重新加载 Nginx
保存配置文件后,重新加载 Nginx 以应用更改:
sudo systemctl reload nginx
实战案例
1. 使用 Let’s Encrypt 自动获取证书
Let’s Encrypt 是一个免费、自动化的证书颁发机构,可以简化证书的获取和续期过程。以下是一个使用 Certbot(Let’s Encrypt 的客户端)获取证书的示例:
sudo certbot certonly --webroot --webroot-path=/var/www/html --email your-email@example.com -d yourdomain.com
2. 配置客户端证书验证
如果你的应用程序需要客户端证书验证,可以在 Nginx 配置中添加以下内容:
ssl_client_certificate /certs/ca.crt;
ssl_verify_client on;
这样,Nginx 将要求客户端提供证书,并在处理请求时验证其有效性。
总结
通过本文的介绍,你应该已经掌握了在 Nginx 中加载信任证书的基本步骤和实战案例。在实际应用中,你可能需要根据具体需求调整配置,例如配置证书链、启用 HSTS 等。希望这篇文章能帮助你轻松地部署安全的 HTTPS 服务。
