如何配置Simple Framework以要求SSL客户端身份验证?
我正在使用编写HTTP服务器,并希望客户端提供由我的证书颁发机构签名的有效证书,以便建立连接 我已经编写了以下裸体服务器。如何修改此代码以要求对所有SSL连接进行客户端证书身份验证如何配置Simple Framework以要求SSL客户端身份验证?,ssl,client-certificates,simple-framework,Ssl,Client Certificates,Simple Framework,我正在使用编写HTTP服务器,并希望客户端提供由我的证书颁发机构签名的有效证书,以便建立连接 我已经编写了以下裸体服务器。如何修改此代码以要求对所有SSL连接进行客户端证书身份验证 public static void main(String[] args) throws Exception { Container container = createContainer(); Server server = new ContainerServer(container);
public static void main(String[] args) throws Exception {
Container container = createContainer();
Server server = new ContainerServer(container);
Connection connection = new SocketConnection(server);
SocketAddress address = new InetSocketAddress(8443);
KeyManagerFactory km = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
KeyStore serverKeystore = KeyStore.getInstance(KeyStore.getDefaultType());
try(InputStream keystoreFile = new FileInputStream(SERVER_KEYSTORE_PATH)) {
serverKeystore.load(keystoreFile, "asdfgh".toCharArray());
}
km.init(serverKeystore, SERVER_KS_PASSWORD.toCharArray());
TrustManagerFactory tm = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
KeyStore caKeystore = KeyStore.getInstance(KeyStore.getDefaultType());
try(InputStream caCertFile = new FileInputStream(CA_CERT_PATH)) {
caKeystore.load(caCertFile, CA_KS_PASSWORD.toCharArray());
}
tm.init(caKeystore);
SSLContext sslContext = SSLContext.getInstance("TLS");
sslContext.init(km.getKeyManagers(), tm.getTrustManagers(), null);
connection.connect(address, sslContext);
}
试试这个
public class MyServer implements org.simpleframework.transport.Server {
private Server delegateServer;
public MyServer(Server delegateServer){
this.delegateServer = delegateServer;
}
public void process(Socket socket){
socket.getEngine().setNeedClientAuth(true);
delegateServer.process(socket);
}
}
当然我让这条路变得更难了。谢谢此代码是否替换问题代码中的容器服务器?