自己署名証明書を使用してテストクライアントへのhttps接続を提供するサーバーがあります。
私のクライアントアプリはJavaで書かれており、次のように自己署名証明書を受け入れさせていました。
import org.apache.http.conn.ssl.SSLSocketFactory;
import org.apache.http.impl.client.DefaultHttpClient;
SSLSocketFactory factory = new SSLSocketFactory(myTrustedStore);
DefaultHttpClient client = new DefaultHttpClient();
client.getConnectionManager().getSchemeRegistry()
.register(new Scheme("https", factory, 456));
これで、信頼できるサードパーティプロバイダーからの適切なSSL証明書が得られました。
証明書を交換した場合、上記の接続は失敗しますか?上記のSSLSocketFactoryで明示的に初期化しているので、クライアントはサーバー証明書を拒否しますか(これは本当に信頼できる証明書ですか?)。
上記のコードを変更してテスターにクライアントアプリを更新させる必要があるのか、それとも接続は更新せずに透過的に機能するのでしょうか。
ありがとう
- - - ファローアップ - - -
私は「本物の」証明書で試しました。自己署名証明書を使用しなければならなかったコードは機能しませんでした。そのため、クライアントが実際の証明書を使用する前に、上記のコードをクライアントにドロップする必要がありました。