2016-06-24 19 views
0

私のアプリケーションは、ロードバランサの背後にあるEC2で動作しています。 www.example.comと* .example.comにhttps証明書があります。サブドメインのhttps証明書の問題

アプリケーションはhttpで実行されていますが、httpsはロードバランサで設定されています。

私は会社に基づいて私のアプリケーションでサブドメインのサポートを追加しました。

のように、XYZ社のhttps://XYZ.example.comと同様です。

私はhttps://XYZ.example.comを使用してアクセスすると、正常に動作します。

私はwww.arun.contactcentral.ioの所有者が不適切に自分のウェブサイトを設定した。盗まれてからあなたの情報を保護するために」、ブラウザは次のように警告し、

https://www.XYZ.example.comを使用してアクセスする場合、Firefoxはこれに接続されていませんウェブサイト。

しかし、私がhttps://www.example.comにアクセスすると、正常に動作します。

* .example.comの認証を取得していますが、www.XYZ.example.comにアクセスしても動作しません。

私はhttpからhttpsの方向を扱うフィルタを持っていますが、それでもURLからWWWをフィルタリングしていません。

public class HttpsFilter implements Filter { 

    private static final String HTTP = "http"; 

    private static final String HTTPS = "https"; 

    private static final String X_FORWARDED_PROTO = "X-Forwarded-Proto"; 

    @Override 
    public void doFilter(final ServletRequest req, final ServletResponse res, final FilterChain chain) throws IOException, ServletException { 


     HttpServletRequest request = (HttpServletRequest)req; 

     HttpServletResponse httpResponse = (HttpServletResponse) res; 

     String xfp = request.getHeader(X_FORWARDED_PROTO); 

     if (HTTPS.equals(xfp)) { 
      //httpResponse.setHeader("Strict-Transport-Security", "max-age=60"); 

      chain.doFilter(req, res); 
      return; 
     } 
     else if (HTTP.equals(xfp)) { 

      String serverUrl = HTTPS+"://"+req.getServerName()+((HttpServletRequest)req).getServletPath(); 

      httpResponse.sendRedirect(serverUrl); 
      return; 
     } 

    } 

} 

おかげで、 Baskar.S

答えて

2

ワイルドカードSSL証明書は、(非常にまれではないだけでなく、サポートケースを除いて)サブドメインの1つだけのレベルに一致します。ワイルドカードのアスタリスクは一致しません。 (ドット)。

ので、* .example.comのための証明書が一致します

  • www.example.com
  • xyz.example.com
  • some-really-long-name.example.com

それが一致しません

  • example.com
  • www.xyz.example.com
  • abc.def.ghi.example.com

あなたはwww.xyz.example.comとxyz.example.comを一致させたい場合は、あなたが必要となります2つの異なる証明書。

https://en.wikipedia.org/wiki/Wildcard_certificate#Limitation

+0

私は2つの証明書を持つことができます。しかし、www。*。example.comは許可されていません。どうすればこれを達成できますか?私のサブドメインは会社に基づいています。 – user1578872

+0

できません。それは受け入れられた標準によってサポートされていません。 *に一致する各サブドメインには、 'www'を前に付ける場合は独自の証明書が必要です。 –

+0

(複数のサブドメインを同じ証明書に含めることはできますが、明示的に名前を付ける必要があります。動的に行うことはできません) –

関連する問題