admin
アプリのインスタンスとアプリのインスタンスの自己署名証明書を生成しましたjudge
。これらのインスタンスは異なるマシンで実行されており、両方に相互の証明書のコピーと独自の証明書があります。私はこれら2つの間でコミュニケーションを取りたいのですが、私の現在のアプローチが正しい方法であるかどうか疑問に思っています。
CertificateFactory cf = CertificateFactory.getInstance("X.509");
Certificate certificate = cf.generateCertificate(new FileInputStream(...));
KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
keyStore.load(null, "test".toCharArray());
keyStore.setCertificateEntry("admin", certificate);
// Code omitted which repeats the above to set the judge certificate
TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
tmf.init(keyStore);
SSLContext ctx = SSLContext.getInstance("TLS");
ctx.init(null, tmf.getTrustManagers(), null);
factory = ctx.getSocketFactory(); // Or #getServerSocketFactory() if admin and not judge
これにより、2つのインスタンスと安全に通信できるようになりますよね?