web-dev-qa-db-ja.com

パブリックIPとプライベートIPを使用した自己署名証明書(Tomcat 7)

パブリックIPとプライベートIPの両方を持つサーバーを構成しています。関連付けられたドメイン名はありません。

自己署名証明書を使用して以下のURLにアクセスすると、正しく機能します。

    https://<PUBLIC IP>:8443

ただし、プライベートIPを使用してそのサーバーにアクセスしようとすると、次のようになります。

    wget https://<PRIVATE IP>:8443

次のエラーが発生します。

エラー:「/ C =?/ ST =?/ L =?/ O =?/ OU =?/ CN = Unknown」によって発行されたの証明書を検証できません:自己署名証明書が見つかりました。エラー:証明書の共通名 '不明'が要求されたホスト名 ''と一致しません。安全でない接続を行うには、 `--no-check-certificate 'を使用します。

パブリックIPとプライベートIPの両方を受け入れるように構成で指定する方法はありますか?

また、address属性を含むserver.xmlに複数のコネクタを含めようとしましたが、機能しません。

3
jackeblagare

ここには2つの根本的な問題があると思います。まず、Windows(私が知る限り)は中央の証明書の保存と検証のメカニズムを実装していますが、アプリケーションは通常、SSL証明書を検証するために呼び出します(たとえば、UNIXアプリはすべて独自にロールします)。つまり、あるブラウザが機能するからといって、別のブラウザ、つまりwgetが機能するという意味ではありません。また、PHPスクリプトが実行することは完全な謎であり、完全に依存しています。問題のライブラリ。

次に、ホスト名の代わりにIPアドレスを埋め込むSSL証明書を使用することにしました。 私たちは持っていた問題 その前に、これらの部分の周り。

私自身の感覚では、この戦略を機能させるために努力を続けることは、資格のある時間をうまく利用することではありません。代わりに、ドメイン名を登録し(コストはほとんどかからず、通常はIPアドレスよりも入力が簡単です)、内部クライアントが内部アドレスを取得し、外部クライアントが外部アドレスを取得するようにスプリットホライズンDNSを設定します。これにより、問題の両方が一挙に削除されます。

1
MadHatter

インターネット(NATを使用)と内部LAN(直接)の両方からサーバーにアクセスしようとしているようです。これが、2つのIPアドレスを使用する理由です。その場合は、同様の状況と、インターネットとLANの両方からパブリックIPでサーバーを利用できるようにする方法を確認してください。

Cisco static NAT LAN側で機能していません

したがって、証明書の混乱を回避します。 (セカンダリIPを使用したソリューションを探してください。)

0
Sergio