$ javac SSL.java
$ java SSL
아래 코드를 SSL.java 로 저장 후, 위와 같이 테스트합니다.
(JDK/JRE 등에서 정상 연결 여부를 보고 싶을 때 사용 가능)
import javax.net.ssl.SSLSocket;
import javax.net.ssl.SSLSocketFactory;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.util.Arrays;
public class SSL {
public static void main(String[] args) {
String host = "lawmin.tistory.com";
int port = 443; // HTTPS 기본 포트
try {
SSLSocketFactory factory = (SSLSocketFactory) SSLSocketFactory.getDefault();
SSLSocket socket = (SSLSocket) factory.createSocket(host, port);
// 지원되는 프로토콜 및 암호화 스위트 출력
System.out.println("Enabled Protocols: " + Arrays.toString(socket.getEnabledProtocols()));
System.out.println("Enabled Cipher Suites: " + Arrays.toString(socket.getEnabledCipherSuites()));
// SSL Handshake 수행
socket.startHandshake();
System.out.println("SSL Handshake 성공!");
// 간단한 HTTP 요청 보내기
OutputStream out = socket.getOutputStream();
out.write("GET / HTTP/1.1\r\nHost: example.com\r\nConnection: close\r\n\r\n".getBytes());
out.flush();
// 응답 출력
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
System.out.println(line);
}
socket.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}