본문 바로가기
study/TIP

https, localhost use ssl

by 휘루걸음 2017. 4. 20.
728x90
반응형

로컬 개발 환경에서 SSL (HTTPS)를 사용하려면 일반적으로 다음 단계를 따르면 됩니다. 이는 주로 개발 중에 보안 연결이 필요한 경우 또는 서비스 워커, HTTPS로 요구되는 기능을 테스트하는 경우에 유용합니다.

반응형

1. SSL 인증서 생성
   로컬에서 사용할 SSL 인증서를 생성해야 합니다. 여러 도구가 있지만, 자체 서명 된 인증서를 생성하는 것이 일반적입니다. OpenSSL을 사용하거나, 특정 개발자를 위한 도구를 사용할 수 있습니다.

728x90

OpenSSL을 사용하는 예

openssl req -x509 -out localhost.crt -keyout localhost.key \
   -newkey rsa:2048 -nodes -sha256 \
   -subj '/CN=localhost' -extensions EXT -config <( \
    printf "[dn]\nCN=localhost\n[req]\ndistinguished_name = dn\n[EXT]\nsubjectAltName=DNS:localhost\nkeyUsage=digitalSignature\nextendedKeyUsage=serverAuth")


2. 인증서 적용

 생성한 인증서를 개발 서버에 적용해야 합니다. 대부분의 서버에서는 이를 위한 설정이 제공됩니다.

3. 로컬 개발 서버 설정 변경

로컬 개발 서버 설정에서 HTTPS를 활성화하고, 사용할 인증서 파일을 지정해야 합니다. 이는 서버에 따라 다를 수 있습니다.
예를 들어, Node.js의 Express 서버에서 HTTPS 설정을 하는 방법

const https = require('https');
   const fs = require('fs');
   const express = require('express');

   const app = express();

   const server = https.createServer({
     key: fs.readFileSync('localhost.key'),
     cert: fs.readFileSync('localhost.crt')
   }, app);

   server.listen(443, () => {
     console.log('Server running on https://localhost:443/');
   });



   개발 서버나 프레임워크에 따라 설정 방법이 다를 수 있습니다. 설정 파일이나 문서를 확인하세요.

4. 브라우저에서 테스트
   설정을 마치고 나면, 브라우저에서 https://localhost:포트번호 를 통해 접속해 테스트합니다. 개발 중에 브라우저가 자체 서명된 인증서를 신뢰하도록 설정이 필요할 수 있습니다.


 

출처 : http://leeted.tistory.com/138

위링크를 따라가면 쉽다.

인증서 생성하고, 이클립스에서 server.xml 수정하면 끝.

신규 서버 만들어서 하는게 깔끔하다고 함.

tomcat 셋팅에서 http / https 간의 세션 공유 설정방법은 찾지 못함. ㅜㅜ

1) 포트 매칭

2) 추가 SSL 사용

<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"

           maxThreads="150" scheme="https" secure="true"

           clientAuth="false" sslProtocol="TLS"

           keystoreFile="C:/Users/ums/.keystore" keystorePass="test1234"

           />

인증서 생성

인증서를 생성하는 명령어

keytool -genkey -noprompt -trustcacerts -keyalg RSA -alias ${cert.alias} -dname ${dn.name} -keypass ${key.pass} -keystore ${keystore.file} -storepass ${keystore.pass} 

윈도우 환경에서 인증서를 생성하는 명령어의 예:

C:\\>java\\bin\\keytool -genkey -noprompt -trustcacerts -keyalg RSA -alias tomcat -dname "CN=localhost, OU=OrgUnit, O=MyCompany, C=KR" -keypass changepassword -keystore %USERPROFILE%\\.keystore -storepass changepassword 

톰캣 설정

  1. server.xml의 ssl connector를 수정
  2. <Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="C:/Users/username/.keystore" keystorePass="changepassword"/>
  3. 톰캣 재시작
  4. 웹브라우저를 통해 https://localhost:8443 접속하여 정상 작동하는지 확인한다.

생성한 인증서 삭제

더 이상 필요하지 않은 인증서를 삭제하기 위한 명령어는 다음과 같다.

keytool -delete -alias keyAlias -keystore keystore-name -storepass password 

윈도우 환경에서 인증서를 삭제하는 명령어의 예:

C:\\>java\\bin\\keytool -delete -alias tomcat -keystore %USERPROFILE%\\.keystore -storepass changepassword 

이클립스(Eclipse) 적용시 유의할 점

이클립스에 등록된 서버를 통해 테스트할 경우 Servers 탭의 Server를 삭제 후 재생성해야 제대로 동작한다. Clean 하는 것만으로는 제대로 반영이 안되는 듯 하다.

출처: [http://leeted.tistory.com/138]

728x90
반응형