我有一台服务器,它使用自签名证书为我的测试客户端提供 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 显式初始化,所以客户端会拒绝服务器证书(这将是一个真正受信任的证书吗?)。
只是想知道我是否必须更改上面的代码并让我的测试人员更新他们的客户端应用程序,或者,连接是否会透明地工作而无需他们进行更新?
谢谢
- - - 跟进 - - -
我已经尝试过使用“真实”证书。我必须使用自签名证书的代码不起作用。因此,在他们使用真正的证书之前,我不得不在我的客户中删除上面的代码。