要在本地Nginx服务器上配置SSL访问,您需要完成以下步骤:
首先,您需要创建自签名证书(用于开发环境):
mkdir -p /etc/nginx/ssl
cd /etc/nginx/ssl
# 生成私钥和证书
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout nginx-selfsigned.key -out nginx-selfsigned.crt
在生成过程中,系统会提示您输入一些信息。对于本地开发,您可以随意填写这些字段。
编辑您的Nginx配置文件(通常在/etc/nginx/sites-available/your-site
):
server {
listen 443 ssl;
server_name localhost; # 或您的本地域名如 example.test
ssl_certificate /etc/nginx/ssl/nginx-selfsigned.crt;
ssl_certificate_key /etc/nginx/ssl/nginx-selfsigned.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
# 其他配置...
location / {
root /var/www/html;
index index.html index.htm;
}
}
# 可选:将HTTP重定向到HTTPS
server {
listen 80;
server_name localhost; # 同上
return 301 https://$host$request_uri;
}
# 测试配置是否正确
nginx -t
# 重新加载配置
systemctl reload nginx
要在浏览器中避免安全警告,您可以将自签名证书添加到系统的信任存储中:
/usr/local/share/ca-certificates/
,然后运行update-ca-certificates
对于开发环境,更简单的方法是使用mkcert工具:
# 安装mkcert
brew install mkcert # macOS
# 或
sudo apt install mkcert # Ubuntu/Debian
# 创建并安装本地CA
mkcert -install
# 为本地域名生成证书
mkcert localhost 127.0.0.1 ::1 example.test
# 然后在Nginx配置中使用这些证书
这样配置后,您就可以通过https://localhost或您配置的域名访问本地Nginx服务器了。