首页 文章

Nginx将http子域重定向到https

提问于
浏览
0

我有一个域有3个子域:

- example.com (main domain)
 - api.example.com
 - blog.example.com
 - support.example.com (just a cname to point to zendesk)

我在 Nginx 上有这3个配置:

api

# HTTP server
server {
    listen       80;
    server_name  api.example.com;
    return 301 https://api.example.com$request_uri;
}


# HTTPS server
server {
    ssl          on;
    listen       443;
    server_name  api.example.com;

    ssl_certificate APIcert.crt;
    ssl_certificate_key APIcert.key;

    #root configuration.....
}

blog

server {
    listen 80;
    server_name blog.example.com;

    root /var/www/blog;
    index index.php index.html index.htm;

site/main domain

server {
    listen 80;
    listen 443 ssl;
    server_name www.example.com;
    return 301 https://example.com$request_uri;

    location ~ \.(php|html)$ {
        deny  all;
    }
}

server {
    listen 80;
    server_name example.com;
    return 301 https://example.com$request_uri;

    location ~ \.(php|html)$ {
        deny  all;
    }
}

server {
    ssl on;
    listen 443 ssl;
    ssl_certificate  mycert.crt;
    ssl_certificate_key  mycert.key;
    server_name example.com;

    root /var/www/frontend;
    .....
}

MY PROBLEM

2 回答

  • 3

    您的Web服务器设置为 Strict-Transport-Security max-age=16070400; includeSubdomains .

    这将告诉Web浏览器仅使用https请求您的域 . 如果您希望通过不安全的http访问子域 blog ,则需要从HTTP严格传输安全性(HSTS)中删除 includeSubdomains 并使用其他浏览器(或清除Firefox) .

    https://www.ssllabs.com/ssltest/analyze.html?d=alooga.com.br

  • -1

    您收到SSL错误消息,因为您没有 blog.alooga.com.br 域的SSL证书 .

    SSL error message for your reference:

相关问题