이 문서에서는 Jetty 서버를 사용하여 웹 서비스를 제공하는 경우 인증서를 발급하는 방법에 대해 다룹니다.
1. 키 페어 생성
먼저, 키 페어를 생성해야 합니다. 이는 공개 키와 개인 키를 생성하여 서버와 클라이언트 사이의 암호화를 위해 사용됩니다. 다음 명령을 사용하여 키 페어를 생성합니다:
keytool -genkeypair -alias my_server -keyalg RSA -keystore keystore.jks -keysize 2048
위 명령에서 다음과 같은 정보를 입력해야 합니다:
alias
: 키 페어를 식별할 수 있는 고유한 별칭keyalg
: 사용할 암호화 알고리즘 (예: RSA)keystore
: 키 저장소 파일 이름keysize
: 키의 크기 (일반적으로 2048비트 사용)
위 명령을 실행하면 키 저장소(.jks
) 파일이 생성되며, 인증서에 대한 정보를 입력할 수 있는 프롬프트가 표시됩니다. 해당 프롬프트에 필요한 정보를 입력하세요.
2. 인증서 서명 요청 생성
인증서 발급기관(Certificate Authority, CA)에 서명 요청을 생성해야 합니다. CA는 이 요청을 기반으로 신뢰할 수 있는 인증서를 발급해 줄 것입니다. 다음 명령을 사용하여 인증서 서명 요청을 생성합니다:
keytool -certreq -alias my_server -keystore keystore.jks -file server.csr
위 명령을 실행하면 server.csr
파일이 생성됩니다. 이 파일은 CA에 제출될 서명 요청을 포함하고 있습니다.
3. 인증서 발급
CA에 서명 요청을 제출하여 인증서를 발급받아야 합니다. 이 단계는 CA의 정책 및 절차에 따라 다를 수 있습니다. CA가 인증서를 발급해 주면 .cer
또는 .crt
확장자를 가진 인증서 파일을 받게 됩니다.
4. 인증서 설치
인증서 파일(.cer
또는 .crt
)을 받은 후, 다음 명령을 사용하여 Jetty 서버에 인증서를 설치합니다:
keytool -importcert -alias my_server -keystore keystore.jks -file certificate.cer
위 명령에서 certificate.cer
는 인증서 파일의 경로와 파일 이름으로 대체해야 합니다.
5. Jetty 구성
마지막으로, Jetty 서버를 구성하여 제공하는 웹 서비스에 인증서를 적용해야 합니다. 이는 Jetty 구성 파일(jetty.xml
또는 jetty.conf
)에서 수행됩니다. 구성 파일에서 SSL 설정 부분을 수정하여 다음과 같이 인증서 정보를 추가합니다:
<Call name="addConnector">
<Arg>
<New class="org.eclipse.jetty.server.ServerConnector">
<Arg name="server">
<Ref refid="Server" />
</Arg>
<Arg name="sslContextFactory">
<New class="org.eclipse.jetty.util.ssl.SslContextFactory">
<Set name="keyStorePath">/path/to/keystore.jks</Set>
<Set name="keyStorePassword">password</Set>
<Set name="keyManagerPassword">password</Set>
</New>
</Arg>
<Set name="port">443</Set>
</New>
</Arg>
</Call>
위 예제에서 /path/to/keystore.jks
는 실제 키 저장소 파일의 경로로 대체해야 합니다. password
는 키 저장소 암호 및 키 페어의 암호로 대체해야 합니다.
Jetty 서버를 재시작하면 이제 HTTPS를 사용하여 웹 서비스를 제공할 수 있습니다.