加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

Nginx一个ip和多个ssl证书

发布时间:2020-12-13 21:40:06 所属栏目:Nginx 来源:网络整理
导读:示例案例.我有一个带有一个IPV4地址的网络服务器.我正在托管~50个网站,其中只有两个有ssl证书.我为2个ssl网站配置了vhosts,一切正常,除了一个大问题 如果我使用https://前缀访问其他48个站点(他们没有ssl证书),我看到我的最新网站有SSL证书. 可以在非SSL网

示例案例.我有一个带有一个IPV4地址的网络服务器.我正在托管~50个网站,其中只有两个有ssl证书.我为2个ssl网站配置了vhosts,一切正常,除了一个大问题 – 如果我使用https://前缀访问其他48个站点(他们没有ssl证书),我看到我的最新网站有SSL证书.

可以在非SSL网站上阻止https前缀吗?或者只有一个解决方案 – 使用专用的IP地址.如果我有专用的IP地址,我使用以下配置:

server {
        listen 111.222.333.444:443 ssl;
}

这样,如果我在非SSL网站上强制https – 没有任何反应.

最佳答案
当没有其他最接近的匹配时,Nginx使用它选择的“默认服务器”来提供页面.如果您尚未指定要使用的默认服务器,我相信它会使用它找到的第一个(在您的情况下是您的一个HTTPS站点).所以你应该能够用你的TLS的IPv4地址创建一个默认服务器vhost(你只使用TLS而不是SSL吗?)并让它监听将捕获随机HTTPS请求的IP.您可能还需要在48个非安全站点中添加server_name项,但如果没有它,它可能也可以.

#Your catch-all HTTPS server:
server {
  listen 104.218.234.204:443 default_server;
  server_name ruel.in ruel.pro;
  root /var/www/ruel.pro;
  index index.html;
  ssl on;
  ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;
  ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;
  ssl_dhparam /etc/ssl/private/dhparams_4096.pem;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
}

#Regular HTTP server
server {
  listen ruel.in:80;
  server_name ruel.in;
  root /var/www/ruel.in;
  index index.php index.html index.htm;
  ...
}

#Regular HTTP server
server {
  listen ruel.pro:80;
  server_name ruel.pro;
  root /var/www/ruel.pro;
  index index.php index.html index.htm;
  ...
}

#Your HTTPS server
server {
  listen dallas.ruhnet.net:443 ssl;
  server_name dallas.ruhnet.net;
  ...
}

另一种方法是继续使用HTTPS设置它们!通过Let’s Encrypt项目(https://www.letsencrypt.org),您可以免费获得所有其他站点的可信证书.这很容易.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读