はじめまして。
WEBサーバー初心者です。
社内で公開している複数のサイトを以下の条件でクライアント認証にしたいのですが、
どのように実装すればよいのか、そもそも実現可能かどうかも分からず困っています。
前提
■1台のサーバーにサブディレクトリで複数のサイトを公開しています。
例)
サイトA:https://xxx.jp/aaa/index.html
サイトB:https://xxx.jp/bbb/index.html
■自己認証局でサーバー証明書を作成し、それを基にクライアント証明書を作成。
(クライアント証明書のCommon Nameは全て「xxx.jp」)
※本番ではサーバー証明書を購入予定です。
環境・ソフト等
Windows Server2012 + Tomcat + OpenSSL
実現したいこと
1台のサーバー内のドメイン名が同じ複数のサイトに対し、
以下の様にサイトごとにクライアント証明書を発行し、クライアント認証にする。
サイトA:クライアント証明書Aがインストールされたクライアントのみアクセス可
サイトB:クライアント証明書Bがインストールされたクライアントのみアクセス可
試してみたこと
①1つのサイトに対しクライアント認証の実装はできました。
②2つのサイトに対し以下を試してみましたが、実現できませんでした。
・サイト数分Tomcatをインスタンス化し、サイトごとにポート、クライアント証明書を割り振る。
→1つのクライアント証明書で全てのサイトがアクセスできてしまう。
・サーバー証明書をサイト数分作成し、それを基にサイトごとにクライアント証明書を作成。
→1つのクライアント証明書で全てのサイトがアクセスできてしまう。
・クライアント証明書のCommon Nameをサイトごとに任意のCommon Nameを設定
→アクセスできない、または証明書エラー
自分なりに調べてみて、クライアント証明書作成の際に設定するCommon Nameにはドメイン名を設定しているため、ドメインが同じサイトの場合、どのサイトにアクセスしようとしているのかまでは判断できないのではないか、そのため、「実現したいこと」は実現できないのではないかと思えてきました。
教えて頂きたいこと
①そもそも1台のサーバーで同じドメイン名の複数サイトに対し、「実現したいこと」は実装可能なのでしょうか?
②もし可能な場合、実現方法をお教え頂けないでしょうか?
③「実現したいこと」が実現できない場合、それぞれのサイトをクライアント認証とする場合はどのようにすることが必要でしょうか?
(サイトごとにサーバーを分ける、サイトごとにドメインを変える等)
勉強中であるため認識違いがあるかもしれませんが、よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー