Linux 톰캣 관련 포스팅 목록
2021.12.04 - [Linux/Tomcat] - Linux 톰캣 HTTPS 적용 - 키스토어로 P12 파일 생성하기(keytool p12)
2021.12.03 - [Linux/Tomcat] - Linux 톰캣 HTTPS 적용 - 키스토어 생성하기(keytool jks)
2020.07.13 - [Linux/Tomcat] - 리눅스 우분투 tomcat 7 설치(Ubuntu, Tomcat, Install)
2020.07.15 - [Linux/Tomcat] - 리눅스 우분투 tomcat 7 80 포트 변경(ubuntu, tomcat, port)
리눅스 P12 파일을 통해 PEM(인증서) 파일 생성하기
안녕하세요.
오늘은 PEM 파일 생성 방법에 대해 알아보도록 하겠습니다.
이전 포스팅에서 키스토어 파일을 만들고 그 파일로 P12 형식으로 변환하는 방법에 대해 알아봤습니다.
오늘 포스팅의 주제인 PEM 파일은 곧 인증서 파일입니다. 이 파일을 만들기 위해서는 바로 P12 파일이 필요합니다.
또한 지금까지 java에서 제공한 keytool 도구를 활용하여 파일 생성 및 변환 과정을 수행했지만 오늘은 openssl이 필요합니다. openssl 설치 방법은 리눅스 우분투 기준으로 apt 명령어로 쉽게 설치 가능합니다. 추후에 특정 버전의 openssl의 소스코드를 다운로드하여 설치하는 방법도 포스팅하도록 하겠습니다.
굳이 openssl 최신 버전을 설치안하고 특정 버전의 소스코드를 다운로드하는 이유는 각 버전마다 기능의 차이점도 존재하고 보안 취약점이 존재하기 때문입니다.
PEM 파일은 키스토어, p12 파일에 존재하는 개인키를 통해 공개키를 생성하여 만들어지는 파일입니다. 공개키는 이전 포스팅에서 다뤘던 것처럼 다른 사람에게 공개하는 키입니다.
HTTPS 통신은 자신만 소유하고 있는 개인키로 평문의 메시지를 암호화하고 상대방에게 전달합니다. 그리고 상대방은 방금 메시지를 보낸 사람의 공개키를 가지고 암호화를 풀어 확인합니다. 이게 PKI의 핵심입니다.
자 그러면 P12 파일로 인증서(PEM) 파일을 생성하는 방법에 대해 알아보도록 하겠습니다. 아래 예제는 리눅스 우분투 18.04 기준으로 작성되었습니다.
키스토어 파일 생성 방법과 P12 변환 과정은 아래 포스팅을 참고하시면 됩니다.
2021.12.03 - [Linux/Tomcat] - Linux 톰캣 HTTPS 적용 - 키스토어 생성하기(keytool jks)
2021.12.04 - [Linux/Tomcat] - Linux 톰캣 HTTPS 적용 - 키스토어로 P12 파일 생성하기(keytool p12)
openssl 설치
$ openssl
OpenSSL> exit
라인 설명
1: 쉘 명령창에 openssl을 입력합니다.
2: OpenSSL 명령 입력창이 출력되면 openssl이 이미 설치된 것이기 때문에 "exit" 명령을 입력한 다음 p12 생성 예제를 수행합니다.
만약 위 2번과 같이 OpenSSL 명령 창이 나타나지 않을 경우 아래와 같이 openssl을 설치합니다.
$ sudo apt-get install openssl
p12 파일로 인증서(pem) 파일 생성하기
$ cd ~/keystore_example
$ openssl pkcs12 -in https_keystore.p12 -out https_keystore.pem
Enter Import Password: test1234
Enter PEM pass phrase: test1234
Verifying - Enter PEM pass phrase: test1234
$ ls
https_keystore.jks https_keystore.p12 https_keystore.pem
라인 설명
1: 이전 키스토어 및 p12 생성 포스팅에서 다뤘던 작업 폴더 경로로 이동
2: openssl 명령을 통해 p12 파일로 pem 파일 생성. 각 인자는 아래와 같다.
pkcs12: p12 파일 관련 상위 명령어
-in https_keystore.p12: p12 파일 경로. 본 예제에서는 기존에 만든 "https_keystore.p12" 파일을 사용
-out https_keystore.pem: 생성할 pem 파일명. 본 예제에서는 "https_keystore.pem"으로 설정
3: p12 파일의 비밀번호를 입력한다. 기존 "test1234"로 설정했기 때문에 그대로 입력한다.
4: 새로 생성될 pem 파일의 비밀번호를 입력한다. "test1234"로 설정하였다.
5: 비밀번호를 다시 입력한다.
7: ls 명령을 통해 생성된 pem 파일을 확인한다.
인증서(pem) 파일 내용 확인
$ cd ~/keystore_example
$ cat https_keystore.pem | openssl x509 -noout -text
라인 설명
2: 생성한 pem 파일을 cat 명령어로 출력하고 그 내용을 openssl에 전달하여 내용을 해석하여 출력합니다. 이때 pem파일은 공개키 즉, 인증서 이기 때문에 별도의 비밀번호 입력이 필요 없습니다. 이 인증서 내용에는 키스토어 발급 시 적시한 인증서 주체의 정보들이 저장되어있습니다. HTTPS 통신에서 서버는 이 인증서를 클라이언트에게 전달하여 자신의 신분 정보를 알려줍니다.
마무리
오늘은 톰캣 HTTPS 적용에 필요한 서버 인증서(PEM) 파일 생성방법에 대해 알아보았습니다.
이전 포스팅에서 다룬 키스토어, P12 파일 생성 방법을 알고 있으면 더욱더 유익한 정보가 될 것 같습니다.
다음 포스팅에서는 이제 실제 톰캣 서버에 HTTPS 기능을 적용하는 방법에 대해 알아보겠습니다.
관련 글
Linux 톰캣 관련 포스팅 목록
2021.12.04 - [Linux/Tomcat] - Linux 톰캣 HTTPS 적용 - 키스토어로 P12 파일 생성하기(keytool p12)
2021.12.03 - [Linux/Tomcat] - Linux 톰캣 HTTPS 적용 - 키스토어 생성하기(keytool jks)
2020.07.13 - [Linux/Tomcat] - 리눅스 우분투 tomcat 7 설치(Ubuntu, Tomcat, Install)
2020.07.15 - [Linux/Tomcat] - 리눅스 우분투 tomcat 7 80 포트 변경(ubuntu, tomcat, port)