본문 바로가기
Dev ::

[OpenSSL] MacBook OpenSSL 설치하고 적용 / Tomcat OpenSSL 적용하기 ::

by 히로:: 2019. 4. 26.

 

잘 동작하던 페이스북 로그인 기능이 동작하지 않습니다.. 

페이스북 API 가 3.2ver 으로 업그레이드되었는데, 3.0ver 기준으로 만든 연동 소스가 동작하지 않습니다...

페이스북 로그인 연동 테스트 및 운영은 Https 환경에서만 가능하기 때문에 운영중인 서버에서 테스트할 순 없고 해서

로컬에 OpenSSL 을 설치했습니다. 

 

https://ko.wikipedia.org/wiki/OpenSSL

 

OpenSSL - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. OpenSSL은 네트워크를 통한 데이터 통신에 쓰이는 프로토콜인 TLS와 SSL의 오픈 소스 구현판이다. C 언어로 작성되어 있는 중심 라이브러리 안에는, 기본적인 암호화 기능 및 여러 유틸리티 함수들이 구현되어 있다. OpenSSL은 Eric A. Young과 Tim Hudson이 만든 SSLeay에 그 근거를 두고 있다. SSLeay의 개발은 Young과 Hudson이 RSA Security로 적을 옮긴 1998년 1

ko.wikipedia.org

Mac에서 설치방법은 간단합니다. 터미널 창 띄우시고

brew install openssl

 

 

openssl 설치 완료 확인창

설치가 완료되면 화면에서 설치된 경로를 확인 할 수 있습니다. 

이제 설치된 경로로 이동해서 로컬 Tomcat 에 SSL을 적용해보도록 하겠습니다. 

 

OpenSSL/bin 폴더로 이동 후 인증서 설치에 필요한 파일들을 생성합니다.

 

openssl md5 * > rand.dat
openssl genrsa -des3 1024 > key.pem

 

 

그다음에 CSR 파일을 생성합니다.  CSR이란 ( Certificate Signing Request )의 약자로 인증서 발급을 위한 필요한 정보를 담고 있는 인증서 신청 형식 데이터입니다.  

openssl req -new -key key.pem > csr.pem


Enter pass phrase for key.pem:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) []:KR  // 국가코드(KR)
State or Province Name (full name) []:Seoul  // 도 or 시
Locality Name (eg, city) []: Gangnam  //도시명
Organization Name (eg, company) []:   //회사명
Organizational Unit Name (eg, section) []:  //조직/소속명
Common Name (eg, fully qualified host name) []:  //서버호스트명(localhost 대신 사용할)
Email Address []:  //이메일

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: Enter 로 넘어감 

 

국가코드에는 KR, 도/시, 도시명,회사명,조직명 그리고 localhost 대신에 호스트 등록해서 사용할 서버명을 입력해주세요.

이메일을 입력하고 패스워드 등록하라고 나오는데 엔터로 넘어갑니다.

 

이제 마지막으로 인증서 파일을 생성해줍니다.

openssl req -key key.pem -x509 -nodes -sha1 -days 365 -in csr.pem -out crt.pem
Enter pass phrase for key.pem: 비밀번호 입력 

 

여기까지 진행하면 SSL 적용에 필요한 OpenSSL 인증서는 생성이 모두 완료됐고,

Tomcat에 적용하기 위해 PKCS12 포맷의 키 저장소 파일을 생성합니다. 

openssl pkcs12 -export -in crt.pem -inkey key.pem -out .keystore -name tomcat
Enter pass phrase for key.pem:   키파일 패스워드
Enter Export Password:  인증서에 사용할 패스워드 ( 톰캣설정에 사용됨 )
Verifying - Enter Export Password:  패스워스 확인 

 

ls -al

.keystore 파일이 제대로 생성되었는지 확인해보시고 이제 톰캣 설정만 해주면 끝납니다.

server.xml 파일을 열어 

<Service name="Catalina">
     ...
    <Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
               keystoreFile="/usr/local/opt/openssl/bin/.keystore" keystorePass="비밀번호" keystoreType="pkcs12"
               clientAuth="false" sslProtocol="TLS" />
     ...
     

 

설정을 해주시고 톰캣 재기동 후 https://호스트:8443 으로 접속해서 테스트해보시면 됩니다.

 

 

반응형

댓글