2016-10-19 6 views
3

私は、VM内で稼動し、HOST_VM_IP:2376で外部からの安全な接続を待ち受けるドッカーデーモンを持っています。私はca.pemcert.pemをとドッキングウィンドウのドキュメントhttps://docs.docker.com/engine/security/https/ あたりとしてkey.pemを生成し、それらを使用してドッカデーモンを開始しました。<HostVMIP>:2376 Javaを使用して、ssl/tls接続をlistenするドッカーデーモンに接続するには?

vmエンドポイント:ポートにカールして、REST API呼び出しを行うことができます。

私はca.pemcert.pemをkey.pemを使用してJAVAを使って安全な接続を作成します。

これらの3つのファイルを使用して、Javaでhttpsクライアントを作成し、残りのapi呼び出しを行うにはどうすればよいですか。

UIのテキストボックスに3つのpemファイルの内容を指定したいのですが、これを実行時にプログラムで取得します!!

ありがとうございます!

+0

これは、あなたに役立つかもしれない:http://stackoverflow.com/questions/4146624/apache-httpclient-and-pem-certificate-files – zack6849

+0

私はUIのテキストボックスにファイルの内容を指定します。私は接続を作成するために実行時にプログラムでそれらを取得します! –

+0

私はそれが無関係にリンクされた答えをどのようにして見ていないのですか? – zack6849

答えて

1

ちょっとした提案と私はその答えも考えています。

Java用のドッカークライアントモジュールがある間に独自のコネクタを作成したいのはなぜですか?

<dependency> 
     <groupId>com.github.docker-java</groupId> 
     <artifactId>docker-java</artifactId> 
     <version>3.0.3</version> 
</dependency> 

と、さまざまな方法で設定します:

  • システム環境
  • システムプロパティ
  • プロパティクラスパス
  • が、それはセットアップが非常に簡単ですdocker-javaを使用することを検討して

  • プログラム方式
  • あなたのようなものが必要になりますので、

は、実行時にDockerClient programaticallyを作成したい:

DockerClientConfig config = DefaultDockerClientConfig.createDefaultConfigBuilder() 
    .withDockerHost("tcp://my-docker-host.tld:2376") 
    .withDockerTlsVerify(true) 
    .withDockerCertPath("/home/user/.docker/certs") // here is the place where your certificates are located 
    .withDockerConfig("/home/user/.docker") 
    .withApiVersion("1.23") 
    .withRegistryUrl("https://index.docker.io/v1/") 
    .withRegistryUsername("dockeruser") 
    .withRegistryPassword("ilovedocker") 
    .withRegistryEmail("[email protected]") 
    .build(); 
DockerClient docker = DockerClientBuilder.getInstance(config).build(); 

ところで、CertificateUtilsも定義されたパス内の証明書が存在するかどうかをチェックし、そこにドッキングウィンドウのための多くの優れた機能があり、それがすでにあります実装されました。

public static boolean verifyCertificatesExist(String dockerCertPath) { 
    String[] files = {"ca.pem", "cert.pem", "key.pem"}; 
    boolean result = true; 
    for (String file : files) { 
    File path = new File(dockerCertPath, file); 
    result &= path.exists(); 
    } 
    return result; 
} 
関連する問題