0

への SSL ソケットを作成する次のコードがあり、google.comGoogle の証明書を表示したいとします。のインスタンスを取得するにはどうすればよいjavax.security.cert.X509Certificate[]ですか?

import java.io.*;
import java.math.*;
import java.net.*;
import java.security.*;

import javax.net.ssl.*;
import javax.net.*;


public class MWE{
    public static void main(String[] args) throws Exception{
        SSLContext sslContext = SSLContext.getDefault();
        SocketFactory clientSocketFactory = sslContext.getSocketFactory();

        String remoteHost = "google.com";
        int remotePort = 443;
        SSLSocket socket = null;
        try {
            //Lookup the "common name" field of the certificate from the remote server:
            socket = (SSLSocket) clientSocketFactory.createSocket(remoteHost, remotePort);
            socket.setEnabledCipherSuites(socket.getSupportedCipherSuites());
            socket.startHandshake();
        } catch (IOException ioe) {
            ioe.printStackTrace();
        }

    }
}

関連する各クラスのドキュメントを確認しましたが、証明書を含むデータ構造への参照をまだ見つけていません。

4

1 に答える 1

3
X509Certificate[] c = socket.getSession().getPeerCertificateChain();
于 2013-03-05T06:42:29.853 に答える