Import certificates & certificate stores - SSL보안인증서 임포트하기

예전의 블로그에서도 언급한 적이 있습니다만, 메모차원에서 다시 다루어 봅니다.

ColdFusion과 같은 JVM기반 WAS에서 SSL보안인증서가 탑재된 외부 HTTPS 호출을 할 경우 해당 웹서버의 SSL보안인증서를 ColdFusion 서버에 등록해야 합니다. 가령, CFHTTP태그로 어떤 데이터를 원격지의 서버에 POST전송하는 경우 원격지의 서버가 HTTPS로 수신한다면 해당 웹서버의 SSL보안인증서의 인증서(cer파일)를 등록해야 합니다. 이는 Adobe ColdFusion 전 버전에 영향을 받습니다. (Railo/OpenBD에서는 영향을 받지 않습니다.)

특히 SMS문자메시지전송, 카드결제 등의 웹어플리케이션을 구현하는 경우 SMS문자메시지 수신 웹서버나 카드결제대행사의 웹서버가 HTTPS방식만 지원하는 경우는 특히 중요합니다. ColdFusion에서 영향을 받는 태그는 CFHTTP, CFDOCUMENT, CFLDAP 등이 있습니다. 참고로 인증서파일이 기간만료되었거나 파기된 경우 다시 등록해 주어야 한다는 점 잊지 마시길 바랍니다.

Reference : http://helpx.adobe.com/coldfusion/kb/import-certificates-certificate-stores-coldfusion.html

우선 자신의 ColdFusion Server 설치옵션에 따라 그리고 JVM의 위치에 따라 경로가 다를 수 있습니다. 서버에 JDK나 JRE를 별도로 설치하고 ColdFusion의 기본 JVM위치를 별도로 추가한 JVM의 경로를 사용했다면 해당 JVM의 keytool를 이용해야 합니다만, 별도의 설치된 JVM이 있어도 대부분의 경우 ColdFusion은 내장 JVM을 사용하므로 다음과 같이 ColdFusion이 설치된 경로내의 keytool을 이용하면 됩니다.

cf_root/runtime/jre/bin

그리고 해당 웹서버의 인증서파일은 브라우저 등을 통해 쉽게 다운로드 할 수 있는데 X.509방식으로 인증된 DER포맷의 CER파일이여야 합니다. 이 파일을 다음의 경로에 kㄷytool을 이용해 임포트 한 후 ColdFusion을 재시작해 주면 됩니다.(멀티서버 방식이나 기타 방식으로 ColdFusion이 설치된 경우는 해당 경로를 위 레퍼런스 문서를 참조하여 변경하세요)

cf_root/runtime/jre/lib/security/cacerts

하나씩 예를 들어 해보도록 합니다.

가령 nid.naver.com으로 본인의 ColdFusion 서버에서 어떤 데이터를 전송해야 하는데 nid.naver.com이 HTTPS연결만 허용한다고 가정합니다. 이런 경우 CFHTTP태그를 써서 어떤 데이터를 보내더라도 CFML의 실행은 정상이지만 어떠한 데이터도 전송되지 않습니다.

이유는 nid.naver.com의 인증서가 내 ColdFusion서버내의 JVM에 등록되어 있지 않기 때문에 보안설정상 전송이 되지 않는 것 입니다. 따라서 nid.naver.com의 인증서를 등록해 줘야 하는 것이죠. 간단하게 아래 그림과 같이 CER파일을 생성하여 이 파일을 내 ColdFusion서버에 업로드 한 후 ColdFusion 내장 JVM의 keytool을 이용해 임포트합니다. (여기서는 크롬브라우저를 사용했으나 대부분의 브라우저에서 인증서내보내기 기능을 지원하고 있습니다.)

 

Import certificates in ColdFusion
<브라우저에서 자물쇠 모양을 클릭하여 인증서 정보를 열람합니다.>

Import certificates in ColdFusion
<인증서 정보창에서 [자세히] 텝부분의 [파일에 복사]를 클릭합니다>

Import certificates in ColdFusion
<인증서내보내기 마법사가 실행됩니다>

Import certificates in ColdFusion
<DER로 인코딩된 X.509바이너리 CER파일을 선택합니다>

Import certificates in ColdFusion
<적당한 경로에 적당한 이름으로 CER파일을 저장합니다>

Import certificates in ColdFusion
<마침버튼을 눌러 인증서내보내기를 완료합니다>

 

여기에서 예로 들은 naver.cer 파일을 자신의 ColdFusion서버에 임의의 경로에 업로드합니다. 이제 Shell화면에서 keytool을 이용해 인증서를 등록해 봅시다. Windows Server환경에서는 동일한 keytool의 명령어를 명령프롬프트에서 입력하거나 아래 그림처럼 간단하게 GUI JVM관리자 패널에서 등록해 줄 수도 있습니다. 

Import certificates in ColdFusion
<Windows Server에 설치된 ColdFusion 설치경로내의 JVM제어판을 실행한 후 [보안]-[인증서] 선택>

Import certificates in ColdFusion
<[가져오기]항목으로 CER파일을 임포트합니다>

 

Windows에서는 위와 같이 편하게 할 수도 있지만 Linux 환경에서는 Shell을 이용합니다. 가령 naver.cer파일이 /home/naver.cer 과 같이 업로드되어 있고 ColdFusion의 기본설치 경로가 /opt/coldfusion9/ 라면 다음의 경로로 이동하여 keytool을 사용합니다. 이때 naver.cer 인증서가 임포트 될 파일은 다음과 같습니다.

keytool의 경로 : /opt/coldfusion9/runtime/jre/bin/keytool
cacerts의 경로 : /opt/coldfusion9/runtime/jre/lib/security/cacerts

위 위치로 이동하여 다음과 같은 쉘명령을 수행합니다. 

./keytool -import -v -alias naver-cert -file /home/naver.cer -keystore /opt/coldfusion9/runtime/jre/lib/security/cacerts -storepass changeit

위 명령에서 naver-cert 부분은 임의대로 지정한 문자열입니다. 편의대로 지정합니다. 경로에 잘 맞추워 명령했다면 오류없이 등록될 것입니다. 자, 이제 ColdFusion Server을 재시작해 줍니다. CFHTTP태그 등의 소스를 이용하여 정상적으로 해당 웹사이트에 데이터를 전송하는 지 확인해 봅니다.

There are no comments yet. - 아직 댓글이 없습니다.

Leave a Comment

Leave this field empty:




Powered by

© 2010-2018 NOOREE.COM