私はDockerを初めて使いこなしています。私はWindows 7でDocker Quickstart Terminalを使用しています。 DockerコンテナでTomcatを使用しているという単純な要件があります。私のDockerFileは以下の通りです:Dockerコンテナを使用したSSLクライアント証明書?
FROM tomcat:8.0.47-jre7
RUN cd /usr/local/tomcat/webapps
COPY test.war /usr/local/tomcat/webapps/test.war
次に、Dockerコンソールで単純なビルドと実行コマンドを発行します。
test.warはJava Webサービスです。このWebサービスは、HTTPSを使用してリモートホスト上の他のWebサービスを内部的に呼び出します。 私はリモートホストの証明書を持っています。
インターネットでは、さまざまなフォーラムやブログに記載されているとおり、これらの証明書を別の場所にインポートまたはコピーするためにいくつかの方法を試しましたが、無駄です。 HTTPSを使用して外部Webサービスをtest.warから呼び出すと、SSLハンドシェークエラーが発生します。
私もJavaキーストアを持っています。私はDockerファイルでJavaを使用しようとしましたが、キーストアを使用しようとしましたが、やはり無駄でした。
自分のマシンに直接インストールされたtomcatで同じtest.warを使用すると、正常に動作します。
このシナリオでSSL証明書/キーストアをインポート/使用できる手順を提供することで、誰かが私を助けることができますか?また、複数の証明書をインポートするにはどうすればよいですか?
あなたは本命をインポートするために従ってきたどのような手順? – Rao
あなたが説明したところから、証明書をtruststoreに追加する必要があります(キーストアと混同しないでください)。電話をかけるために使用するテクノロジーに応じて、さまざまな方法があります。たとえば、春の起動の場合はhttps://stackoverflow.com/a/43235569/2065796 のようになります。コンテナ内のjvmを信頼できる証明書などで更新することもできます。 私たちはあなたを助けることができるでしょう。 –
'RUN cd/usr/local/tomcat/webapps'の代わりにあなたの問題とは無関係なコメントがあります.WORKDIR/usr/local/tomcat/webappsを使用して、より軽量でベストプラクティスを保つことができます。 – samprog