質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

Apache Tomcat

Apache TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

解決済

1台のサーバーで同じドメイン名のサイトごとにクライアント証明書を発行しクライアント認証にしたい

rackuer65
rackuer65

総合スコア0

SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

Apache Tomcat

Apache TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

1回答

0評価

0クリップ

38閲覧

投稿2020/03/16 05:55

編集2022/01/12 10:58

はじめまして。
WEBサーバー初心者です。
社内で公開している複数のサイトを以下の条件でクライアント認証にしたいのですが、
どのように実装すればよいのか、そもそも実現可能かどうかも分からず困っています。

前提

■1台のサーバーにサブディレクトリで複数のサイトを公開しています。

 例)
サイトA:https://xxx.jp/aaa/index.html
サイトB:https://xxx.jp/bbb/index.html

■自己認証局でサーバー証明書を作成し、それを基にクライアント証明書を作成。
(クライアント証明書のCommon Nameは全て「xxx.jp」)
※本番ではサーバー証明書を購入予定です。

環境・ソフト等

Windows Server2012 + Tomcatomcat + OpenSSL

実現したいこと

1台のサーバー内のドメイン名が同じ複数のサイトに対し、
以下の様にサイトごとにクライアント証明書を発行し、クライアント認証にする。

サイトA:クライアント証明書Aがインストールされたクライアントのみアクセス可
サイトB:クライアント証明書Bがインストールされたクライアントのみアクセス可

試してみたこと

①1つのサイトに対しクライアント認証の実装はできました。
②2つのサイトに対し以下を試してみましたが、実現できませんでした。
・サイト数分Tomcatをインスタンス化し、サイトごとにポート、クライアント証明書を割り振る。
→1つのクライアント証明書で全てのサイトがアクセスできてしまう。

・サーバー証明書をサイト数分作成し、それを基にサイトごとにクライアント証明書を作成。
→1つのクライアント証明書で全てのサイトがアクセスできてしまう。

 ・クライアント証明書のCommon Nameをサイトごとに任意のCommon Nameを設定
→アクセスできない、または証明書エラー

自分なりに調べてみて、クライアント証明書作成の際に設定するCommon Nameにはドメイン名を設定しているため、ドメインが同じサイトの場合、どのサイトにアクセスしようとしているのかまでは判断できないのではないか、そのため、「実現したいこと」は実現できないのではないかと思えてきました。

教えて頂きたいこと

①そもそも1台のサーバーで同じドメイン名の複数サイトに対し、「実現したいこと」は実装可能なのでしょうか?
②もし可能な場合、実現方法をお教え頂けないでしょうか?
③「実現したいこと」が実現できない場合、それぞれのサイトをクライアント認証とする場合はどのようにすることが必要でしょうか?
(サイトごとにサーバーを分ける、サイトごとにドメインを変える等)

勉強中であるため認識違いがあるかもしれませんが、よろしくお願いします。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

over
over

2020/04/02 00:10

サイトAとサイトBと分割しているように記載されていますが、IIS上ではどのように分割されているのでしょうか?証明書はIIS管理ツール左ペインにある「サイト」以下に作成したサイト毎に割り当てることができるので、そのように分割すれば可能では?と思っています(未検証ですが・・・)。 ただし、サイト毎に接続ポートは変更する必要がありますが。
rackuer65
rackuer65

2020/04/05 05:22

返事が遅くなり申し訳ありません。 > 証明書はIIS管理ツール左ペインにある「サイト」以下に作成したサイト毎に割り当てることができるの で、そのように分割すれば可能では? ありがとうございます。 なるほど。 なにぶん初心者なので、環境設定した担当者に確認してみます。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

Apache Tomcat

Apache TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。