Java Jersey는 웹 어플리케이션과 API를 개발하기 위한 프레임워크로, 보안 연결을 위해 SSL/TLS를 사용할 수 있습니다. 이 문서에서는 Java Jersey에서 SSL/TLS를 설정하는 방법에 대해 알아보겠습니다.
1. 키 스토어 생성
먼저, SSL/TLS를 사용하기 위해 키 스토어를 생성해야 합니다. 키 스토어는 인증서와 개인 키를 저장하는 공간으로 사용됩니다.
아래의 명령을 사용하여 키 스토어를 생성할 수 있습니다:
keytool -genkey -alias myalias -keyalg RSA -keystore keystore.jks -validity 365
위 명령을 실행하면 몇 가지 정보를 입력해야 합니다. 이 정보는 키 스토어에 저장되며 인증서 작성시 사용됩니다.
2. Jersey 서버 설정
다음으로는 Jersey 서버의 설정을 변경하여 SSL/TLS를 사용하도록 해야 합니다.
import org.glassfish.jersey.SslConfigurator;
import org.glassfish.jersey.server.ResourceConfig;
public class MyApplication extends ResourceConfig {
public MyApplication() {
// SSL/TLS 설정을 가져옴
SslConfigurator sslConfig = SslConfigurator.newInstance()
.keyStoreFile("path/to/keystore.jks")
.keyStorePassword("keystore_password")
.trustStoreFile("path/to/truststore.jks")
.trustStorePassword("truststore_password");
// 서버에 SSL/TLS 설정 적용
property("jersey.config.server.ssl.enabled", "true");
property("jersey.config.server.ssl.keyStore", sslConfig.getKeyStoreFile());
property("jersey.config.server.ssl.keyStorePassword", sslConfig.getKeyStorePassword());
property("jersey.config.server.ssl.keyPassword", sslConfig.getKeyPassword());
property("jersey.config.server.ssl.trustStore", sslConfig.getTrustStoreFile());
property("jersey.config.server.ssl.trustStorePassword", sslConfig.getTrustStorePassword());
}
}
위 코드에서 path/to/keystore.jks
와 path/to/truststore.jks
는 각각 생성한 키 스토어와 신뢰 스토어의 경로를 지정해야 합니다. 또한 keystore_password
와 truststore_password
는 생성한 키 스토어와 신뢰 스토어의 암호를 입력해야 합니다.
3. 서버 실행
마지막으로, 변경한 설정을 적용하여 Jersey 서버를 실행할 수 있습니다. 다음은 간단한 예시입니다:
import org.glassfish.jersey.jetty.JettyHttpContainerFactory;
import org.glassfish.jersey.server.ResourceConfig;
import javax.ws.rs.core.UriBuilder;
import java.net.URI;
public class Main {
public static void main(String[] args) throws Exception {
URI baseUri = UriBuilder.fromUri("https://localhost/").port(8443).build();
ResourceConfig config = new MyApplication();
JettyHttpContainerFactory.createServer(baseUri, config);
}
}
위 코드에서 https://localhost/
는 접속할 서버의 주소를 나타냅니다. 앞서 생성한 키 스토어와 신뢰 스토어를 사용하여 SSL/TLS 연결을 수립하는 서버를 실행할 수 있습니다.
이제 Java Jersey에서 SSL/TLS를 사용하여 보안 연결을 설정하는 방법을 알게 되었습니다. SSL/TLS를 이용하면 데이터의 안전한 전송을 보장할 수 있습니다.
참고 자료
-
Jersey 공식 문서: Jersey SSL/TLS Configuration
-
Oracle Java Documentation: keytool 명령 설명서