簡體   English   中英

Nginx重定向根域,該域不在SSL證書中

[英]Nginx redirect root domain which is not in SSL certificate

我有一個* .example.com的SSL通配符證書,該證書對根域無效。 我想要Ubuntu 14.04上的Nginx

  1. 僅接受對已定義主機的請求
  2. 將根域和www子域的所有http請求重定向到https www子域
  3. 僅在端口443上為根域返回404,例如,如果reuqest為https://example.com

通過復制下面的配置,我設法實現了1和2。

server {
    #listen 80;
    #isten 443;
   return 404;
}

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

server {

    listen 443 ssl;
    #certificate and key referenced in common.conf
    server_name www.example.com;

    root /usr/share/nginx/html/example.com;
    index index.php index.html index.htm;

    include common/common.conf;
}

當我從上面的第二行和第三行刪除注釋標記時,希望僅對https://example.com返回404-沒有任何效果。 例如,我在Chrome中對於https://www.example.com/http://ww.example.com/都獲得ERR_CONNECTION_CLOSED。

我應該怎么做才能一起實現1),2)和3)?

非常感謝。

... *。example.com的通配符證書,對於根域無效...僅在端口443上為根域返回404,例如,如果reuqest是https://example.com

這是不可能的。 使用https,HTTP響應將在URL中為主機建立的TLS連接內生成。 因此,要返回404以訪問https://example.com,您必須首先具有經過驗證的TLS連接。 但是,由於證書中不包含example.com,因此在嘗試建立TLS連接時會收到驗證錯誤,因此無法成功建立TLS連接,並且在連接內部無法返回404。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM