shttpserver.java

来自「一个很好的学生成绩管理系统」· Java 代码 · 共 58 行

JAVA
58
字号
import java.net.*;
import java.io.*;
import java.util.*;
import java.security.*;
import javax.net.*;
import javax.net.ssl.*;
//import com.sun.net.ssl.*;

public class sHTTPServer extends HTTPServer 
{
	String KEYSTORE = "httpskeystore";
 	char[] KEYSTOREPW = "12345678".toCharArray();
 	char[] KEYPW = "ssltest".toCharArray();
 	boolean requireClientAuthentication;

 	public static void main(String args[])
 	{
  		sHTTPServer server = new sHTTPServer();
  		server.run();
 	}
 	public sHTTPServer(String name, String version, int port, 
		boolean requireClientAuthentication) 
	{
  		super(name, version, port);
  		this.requireClientAuthentication = requireClientAuthentication;
 	}
 	
	public sHTTPServer() 
 	{
  		this("sHTTPServer", "1.0", 443, false);
 	}
 	
 	ServerSocket getServerSocket() throws Exception 
 	{
  		Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());

  		KeyStore keystore = KeyStore.getInstance("JKS");
  		keystore.load(new FileInputStream(KEYSTORE), KEYSTOREPW);
  
  		KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509");

  		kmf.init(keystore, KEYPW);

  		SSLContext sslc = SSLContext.getInstance("SSLv3");

  		sslc.init(kmf.getKeyManagers(), null, null);

  		ServerSocketFactory ssf = sslc.getServerSocketFactory();

  		SSLServerSocket serverSocket = 
   			(SSLServerSocket) ssf.createServerSocket(serverPort);

  		serverSocket.setNeedClientAuth(requireClientAuthentication);

  		return serverSocket;
 	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?