티스토리 뷰

 

운영서버에 새로운 본인인증 OR 결제모듈을 적용시키고자

개발서버(로컬)에서 테스트를 하려고 할 때  HTTPS가 필요합니다.

 

결제 SDK는 자체 제작을하는데 라이브러리 중 일부는 HTTPS 환경에서만 정상 작동을 하도록 만들어졌기 때문입니다.

 

만약 HTTP환경에서 결제모듈을 띄우려고한다면 다음과 같은 오류가 발생합니다.

Ex) [mTranskey Error] : Cannot load TransKey. Network is not available.

따라서 개발환경에서 테스트를 진행하기위해 HTTPS를 적용시켜 보겠습니다.

 

현재 로컬의 개발환경은

Tomcat7 버전(과거) / Spring / Windows / Chrome을 사용 중입니다.

 

1. mkcert 다운로드

https://github.com/filosottile/mkcert/releases

 

Releases · FiloSottile/mkcert

A simple zero-config tool to make locally trusted development certificates with any names you'd like. - FiloSottile/mkcert

github.com

 

다운받은 exe파일

위 사이트에서 사진의 표시된 파일을 다운로드하여 실행한다.

 

HTTPS를 사용하려면 SSL인증서가 필요합니다.

그러나 Localhost는 도메인이 아니라 공인 인증서를 발급받을 수 없습니다.

mkcert를 이용하면 내 컴퓨터 자체를 신뢰할 수 있는 인증기관으로 등록해 주므로 HTTPS가 정상 작동하게 됩니다.

 

2.mkcert 설치 및 인증서 발급

다운로드한 mkcert-v1.x.x-windows-amd64.exe의 이름을 mkcert로 변경해 줍니다.

** 해당 파일을 바탕화면 OR 본인이 편한 곳에 위치시켜도 괜찮지만, 어디서든 mkcert의 명령어를 사용하려면

    환경변수 PATH에 등록된 폴더에 넣어야 합니다.

    System32는 Windows가 기본으로 PATH에 등록한 폴더라 이곳에 복사하면 PowerShell / CMD 어디서든 사용이 가능합니다.

 

Copy-Item "C:\Users\사용자명\Downloads\mkcert.exe" "C:\Windows\System32\mkcert.exe"

다운로드한 mkcert.exe를 System32에 위치시키고,

 

mkcert -install
mkcert localhost myIP

install을 실행하고 본인의 ip까지 추가를 한다면(선택사항)

 

Created a new certificate valid for the following names 📜
- "localhost"
- "myIP"

The certificate is at "./localhost+2.pem"
The key at "./localhost+2-key.pem" ✅

위와 같은 성공 메지와 두 개의 파일이 생성됩니다.

 

3. keystore 변환

두 파일이 생성되었다.

그러나 지금 사용 중인 Tomcat7 버전은. pem파일을 직접 읽지 못합니다.

따라서 해당파일을. p12로 변환을 해야 합니다.

 

Windows운영체제에서 Git을 설치했다면, Git Bash를 이용해 openssl을 사용할 수 있습니다.

바탕화면에. pem파일을 위치시켰기 때문에 바탕화면으로 이동을 해주고,

cd /c/Users/사용자명/Desktop

openssl pkcs12 -export \
-in localhost.pem \
-inkey localhost-key.pem \
-out keystore.p12 \
-name tomcat \
-passout pass:changeit

변환 명령어를 입력해 줍니다.

변환 완료된 keystore파일

해당파일을 톰캣 설치폴더의 conf디렉터리에 복사합니다.

 

4. Server.xml 수정

<!-- 기존 8080 Connector -->
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"/>

<!-- 아래 추가 -->
<Connector port="8443"
protocol="org.apache.coyote.http11.Http11NioProtocol"
SSLEnabled="true"
maxThreads="150"
scheme="https"
secure="true"
keystoreFile="conf/keystore.p12"
keystorePass="changeit"
keystoreType="PKCS12"
clientAuth="false"
sslProtocol="TLS" />


이렇게 추가를 해주면 작업은 마무리입니다.

 

단, 변환명령어에서의 passout pass:changeit

추가한 server.xml의 keystorePass="changeit"

값이 같아야 작동을 합니다.

 

이후 서버를 재시작하고 브라우저에
https://localhost:8443/프로젝트경로 주소를 입력하고 접속을 해보면

HTTPS설정

설정이 잘 된 것을 확인할 수 있습니다.

 

감사합니다.

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/08   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
글 보관함