# 1의 작업 코드 (jdk1.6.0_23).
수입
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import java.security.cert.X509Certificate;
실제 신뢰 모두의 TrustManager 코드를.
TrustManager trm = new X509TrustManager() {
public X509Certificate[] getAcceptedIssuers() {
return null;
}
public void checkClientTrusted(X509Certificate[] certs, String authType) {
}
public void checkServerTrusted(X509Certificate[] certs, String authType) {
}
};
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, new TrustManager[] { trm }, null);
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
그냥 명확히하기 위해 서버 코드를 변경하거나 클라이언트 만 변경할 수 있습니까? –
인증서 확인 단계를 무시하면 안 좋은 생각입니다. 당신이 처음에 누구인지 확실하게 밝히지 않았다면 누군가에게 비밀리에 이야기하는 것이 거의 없습니다. 옵션 2 (로컬 신뢰 저장소)는 사용하기 쉽습니다. – Bruno
일부 상황에서는 인증 단계가 무시됩니다. 예를 들어, 격리 된 네트워크에서 SSL이 정책으로 인해 유일하게 활성화 된 서비스이지만 관리자가 비 SSL 서비스를 활성화하는 방법을 모르기 때문에 . – vy32