Nginx 是一个高性能的 HTTP 和反向代理服务器,也用作邮件代理服务器。SSL(Secure Sockets Layer)是一种安全协议,用于在客户端和服务器之间建立加密连接。当 Nginx 配置 SSL 时,它可以处理 HTTPS 请求,确保数据传输的安全性。
假设你有两个域名 example1.com 和 example2.com,并且你想为它们配置 SSL。你可以使用 Let's Encrypt 提供的免费证书,或者购买商业证书。
sudo apt update
sudo apt install certbot python3-certbot-nginxsudo certbot --nginx -d example1.com -d example2.comCertbot 会自动修改 Nginx 配置文件,添加 SSL 相关的配置。
server {
listen 80;
server_name example1.com example2.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name example1.com;
ssl_certificate /etc/letsencrypt/live/example1.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example1.com/privkey.pem;
location / {
root /var/www/example1.com;
index index.html index.htm;
}
}
server {
listen 443 ssl;
server_name example2.com;
ssl_certificate /etc/letsencrypt/live/example2.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example2.com/privkey.pem;
location / {
root /var/www/example2.com;
index index.html index.htm;
}
}原因:可能是证书路径错误,或者证书文件权限不正确。
解决方法:
sudo chown -R root:root /etc/letsencrypt/live
sudo chmod -R 755 /etc/letsencrypt/live
sudo systemctl restart nginx原因:可能是配置文件中有语法错误。
解决方法:
sudo nginx -t如果有错误,根据提示进行修正。
原因:可能是证书过期,或者证书链不完整。
解决方法:
sudo certbot renew如果证书链不完整,可以尝试重新安装证书。
通过以上配置和解决方法,你应该能够成功为多个域名配置 Nginx SSL。