1. 인증서 확인
해당 인증서는 한국전자인증(주)에서 받은 인증서임.
cert.pem : 서버의 SSL/TLS인증서
DigCertCA.pem : 중간인증기관(CA)의 인증서
newkey.pem : 서버의 개인키
tomcat(WAS) 단독으로 운영이니 tomcat기준으로 설명하겠다
Apach + Tomcat 연동의 경우 ssl 인증서는 Apache쪽에 설치해주면 된다.
해당 인증서는 pem파일인데 pfx파일과의 차이점은 아래글 참고
https://wogus789789.tistory.com/439
2. 인증서 저장
해당 인증서를 해당 서버의 임의의 폴더에 저장한다
/root/ssl/ 이라는 경로에 나는 저장을 해주겠다
3. PKCS12 keystore생성 및 JKS 포맷
- openssl을 사용하여 PKCS12 keystore생성
openssl pkcs12 -export -in cert.pem -inkey newkey.pem -certfile DigiCertCA.pem -out keystore.p12 -name tomcat
openssl pkcs12 -export: PKCS12 포맷의 keystore 파일을 생성하는 명령
-in cert.pem: 사용할 서버의 인증서 파일
-inkey newkey.pem: 서버의 개인 키 파일
-certfile DigiCertCA.pem: 인증서 체인에 포함될 추가 CA 인증서 파일
-out keystore.p12: 생성될 PKCS12 keystore 파일의 이름
-name tomcat: keystore 내의 인증서/키 항목에 할당될 이름
- 비밀번호 입력
keystore을 생성할 때 아마 비밀번호를 입력하라고 뜰것이다
보안에 취약하지 않은 비밀번호로 생성하여 입력해주고 꼭 기억해주자
예시로 'test123!@#'이라고 했다고 칭해보겠다
- Keytool을 사용하여 PKCS12 ekystore를 JKS포맷으로 변환
keytool -importkeystore -deststorepass [password] -destkeypass [keypassword] -destkeystore mykeystore.jks -srckeystore keystore.p12 -srcstoretype PKCS12 -srcstorepass [p12-password] -alias tomcat
keytool -importkeystore: keystore의 내용을 다른 keystore로 가져오거나 변환하는 명령
-deststorepass [password]: 새로 생성될 JKS keystore의 비밀번호
-destkeypass [keypassword]: JKS keystore 내에 저장될 키의 비밀번호
-destkeystore mykeystore.jks: 생성될 JKS keystore 파일의 이름
-srckeystore keystore.p12: 변환할 원본 PKCS12 keystore 파일
-srcstoretype PKCS12: 원본 keystore의 타입
-srcstorepass [p12-password]: 원본 PKCS12 keystore 파일의 비밀번호
-alias tomcat: keystore 내의 인증서/키 항목에 할당된 이름
=> 비밀번호가 3개나 있어서 당황할 수 있지만 기록해두면 된다
혹은 보안에 취약하지 않은 비밀번호라면 같은 비밀번호로 해도 상관없다
- 예시
keytool -importkeystore -deststorepass test123!@# -destkeypass test123!@# -destkeystore mykeystore.jks -srckeystore keystore.p12 -srcstoretype PKCS12 -srcstorepass test123!@# -alias tomcat
보안이 강하다 치고 위에서 정한 test123!@#을 비밀번호 칸에 넣어주었다
예시이니 이 부분을 꼭 변경해서 변환하세요
4. tomcat 설정
- server.xml설정
../tomcat/conf/server.xml
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443" />
톰캣경로의 server.xml에서 80포트를 443포트로 리다이렉션 시켜준다
https의 기본포트가 443이기 때문에 80포트(http)로 들어왔을 때 443(https)로 연결시켜주기 위함임
<Connector port="443"
protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" debug="0" scheme="https" secure="true"
keystorePass="test123!@#" keystoreFile="/root/ssl/mykeystore.jks"
clientAuth="false" sslProtocol="TLS" />
그리고 443이라는 connector가 주석처리 되어있을 텐데 주석을 풀고 해당 내요을 작성해준다
keysotrePass : 키스토어 생성시 만든 비밀번호를 넣어주면됨. 예시에서 썼던 test123!@#을 써주면 되겠죠!
꼭 본인이 생성한 비밀번호로 넣으세요!
keystoreFile : 키스토어가 있는 경로. jks라는 확장자까지 꼭 적어주세요
나머지는 똑같이 작성해주면됨
5. 방화벽해제
사내 방화벽이나 서버의 방화벽이 있다면 443방화벽을 해제해줘야한다
6. 톰캣 재실행
../tomcat/bin/shutdown.sh
../tomcat/bin/startup.sh
설정을 재적용해주기 위해 톰캣을 껐다 켜준다
해당도메인으로 다시 들어가보면 자물쇠가 채워져있고 클릭하면 연결이 안전하다고 떠있다
그리고 https로 리다이렉트되는 것을 확인할 수 있다
그럼 끝!
'server·network' 카테고리의 다른 글
Tomcat http에서 https로 자동 리다이렉트 설정, 80에서 443으로 리다이렉트 (0) | 2024.01.23 |
---|---|
SSL인증서 PEM과 PFX파일의 특징과 차이점 (0) | 2023.12.14 |
linux ftp계정생성 및 사용자별 root 디렉토리 설정하기 (0) | 2023.09.01 |
linux에서 vsftpd설치 및 ftp서버 생성,설정/ 방화벽 열기 (0) | 2023.09.01 |
zmodem설치로 xshell에서 드롭다운하여 파일이동하기 (0) | 2023.09.01 |
댓글