在 Nginx 中防止 SSL 证书被其他域名“窜用”
在 Nginx 中防止 SSL 证书被其他域名“窜用”(即防止未经授权的域名使用你的 SSL 证书),需要确保你的服务器配置只允许合法域名访问,并通过适当的配置阻止非法域名的 HTTPS 请求。
一般情况下,将多个域名绑定到该服务器(默认页)后,直接通过 http 方式可以正常访问。可以再通过配置,以支持 https 方式访问,但是,配置 ssl 证书,不方便,也没有必要。可是,若不配置 ssl,则会出现窜站的情况。如下图:
在 Nginx 配置中,明确指定 server_name 指令,确保服务器只响应特定域名的请求。对于其他未配置的域名,可以设置一个默认的 server 块来拒绝访问。
1、进入 nginx 配置目录:
cd /usr/local/nginx/conf
mkdir ssl
2、生成自签名证书:
openssl req -x509 -nodes -days 1 -newkey rsa:2048 -keyout ssl/dummy.key -out ssl/dummy.crt -subj "/CN="
3、将下述代码添加到 nginx.conf
server {
listen 443 default_server ssl;
server_name _;
# 使用自签名证书或无效证书
ssl_certificate ssl/dummy.crt;
ssl_certificate_key ssl/dummy.key;
# 直接返回 403 或其他错误
return 403;
}
4、重启 nginx
nginx -t
systemctl reload nginx
5、访问时,出现 403 错误,即是配置成功。