반응형

작성일자 : 2020.01.24

환경 : CentOS 7, Apache 2.2 ,Tomcat 7, OpenSSL 1.0.2

시나리오 : 서비스 서버를 인증서버로 활용하여 Apache Web Server, Tomcat WAS 에 각각 SSL 적용

 

 

1. 인증서 만들기 (OpenSSL 활용)

 

OpenSSL 설치

> yum install openssl -y

 

OpenSSL 설치 확인

> openssl version

  

 

인증기관(CA) 개인 키 발급

> openssl genrsa -des3 -out server.key 1024

  

발급 과정 중 개인키 패스워드 지정 필요.

자가 서명이기에 내 자신이 인증기관이며, 개인 키 생성이 인증기관 개인 키 발급하는 과정이 된다

 

 

csr (Certivicate Sinning Request - 인증요청서) 생성

> openssl req -new -days 365 -key server.key -out ssl.csr

 

앞에서 지정한 패스워드 입력 필요

정보 입력 부분은 전부 Default 로 진행

 

 

인증서 (crt : Cretificate) 생성

> openssl x509 -req -days 365 -in ssl.csr -signkey server.key -out ssl.crt

  

 

 

2.1) Case1 : Apache SSL 적용

 

mod_ssl.c 모듈 확인

%APACHE_HOME%/bin/ > ./apachectl -l 

  

 

mod_ssl.c 가 없다면 apache 설치 과정에서 추가하거나, 동적으로 적용해야함

apache 설치 중 ./configure --enable-ssl 명령어를 통해 해당 모듈 사용 설정 가능

 

* ssl 모듈 추가 설정 후 설치 진행 과정에서 아래와 같은 에러 발생 시, openssl-devel 추가 설치

  

 

> yum install openssl-devel -y

 

 

Apache 설정

 

SSLCertificateFile 인증서 파일 설정

SSLCertificateKeyFile 키 파일 설정

SSLCACertificateFile 는 설정하지 않아도 동작한다. 진행하는 테스트 환경은 자가 서명이라 체이닝이 필요 없기 때문일듯(추측..)

 

%APACHE_HOME%/conf/extra/httpd-ssl.conf

SSLCertificateFile "path"
SSLCertificateKeyFile "path"
# SSLCACertificateFile "path" // 체이닝이 필요할 경우 설정

  

 

 

%APACHE_HOME%/conf/httpd.conf

Include conf/extra/httpd-ssl.conf

  

SSL 설정파일을 포함하는 설정

 

 

Apache 시작

 

시작 시 앞에서 설정했던 키 패스워드 입력

 

 

HTTPS(SSL) 적용 확인

 

http 접근 시

 

https 접근 시

신뢰할 수 없는 인증서이기에 처음엔 위 처럼 뜬다

무시하고 접근 가능

 

 

 

2.2 Case 2 : Tomcat SSL 적용

 

인증서를 tomcat 용으로 변환

> openssl pkcs12 -export -in ssl.crt inkey server.key -out .keystore -name tomcat

   

변환 과정에서 key 패스워드 입력 및 keystore 패스워드 지정 필요

 

 

tomcat 설정

 

%TOMCAT_HOME%/conf/server.xml

server.xml 에 아래 설정 기본 옵션이 주석처리되어 적혀있음

<Connector port="%PORT_NUMBER%" protocol="org.apache.coyote.http11.Http11Protocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystorePass="%PASSWORD%" keystoreFile="%KEYSTORE_FILE_PATH%"/>

  

 

HTTPS(SSL) 적용 확인

http 8080 접근 시

https 8443 접근 시

 

 

 

3. 인증서 정보

 

 

반응형

'보안' 카테고리의 다른 글

[보안] SSL  (0) 2021.01.24
[보안] 암호화  (0) 2021.01.17

+ Recent posts