在Nginx中,我可以为本地网络上的主机提供TLSv1 / 1.1 / 1.2,但对所有其他主机只有TLSv1.1 / 1.2吗?

时间:2018-02-05 20:46:08

标签: ssl nginx

我有一台服务器,我希望为除本地网络上的所有连接主机禁用TLSv1。

目前,我的nginx conf看起来像这样:

server {
  listen                *:443 default_server ssl;
  server_name           myhostname;
  ...
  ssl_protocols TLSv1.1 TLSv1.2;
  ...
}

server {
  listen                *:443 default_server ssl;
  server_name           myhostname;
  ...
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ...

  location / {
      allow 10.0.0.0/8;
      deny all;
      ...
  }
}

我想只允许10.0.0.0/8个主机使用TLSv1,但是这个配置会给我一个警告,说明端口443上有myhostname重复。

我正在用

进行测试
openssl s_client -connect myhostname.com:443 -tls1

并且似乎不起作用。

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用nginx的geo指令。 this will help you to understand geo directive batter

http{
..
geo $allow_all_ssl {
    default         0;
    10.0.0.0/8      1;
}
..}
server{
...
set $ssl_value "TLSv1.1 TLSv1.2";
if ($allow_all_ssl) {
set $ssl_value "TLSv1 TLSv1.1 TLSv1.2";
}
ssl_protocols $ssl_value;