我们从Thawte获得了一个通配符证书,这对于https://example.com是无效的。
因此,我们希望将所有来自https://example.com的请求转发到https://www.example.com,而不会收到证书错误。
这在nginx中可能吗?
我的configuration:
server { listen 80; server_name example.ch www.example.ch api.example.ch; if ($host = 'example.ch' ) { rewrite ^/(.*)$ https://www.example.ch/$1 permanent; } rewrite ^ https://$server_name$request_uri? permanent; } server { listen 443; if ($host = 'example.ch' ) { rewrite ^/(.*)$ https://www.example.ch/$1 permanent; } ssl on; ssl_certificate /etc/nginx/ssl/example.crt; ssl_certificate_key /etc/nginx/ssl/example.key; server_name example.ch www.example.ch api.example.ch; ... }
这是不可能的,句号。 SNI尽pipe如此,一个浏览器被告知去https://example.com会得到强大的脾气暴躁, 在任何有效的证书已经提交example.com 之前被redirect到任何其他地方 – 如果没有,SSL证书将大大无意义。
正如其他人所指出的那样,如果没有获得对最初请求的域有效的证书,就无法支持这一点。