본문 바로가기
IT만들기/라즈베리파이

테스트용 자체인증 SSL 서버 구축

by 커피향처럼 2017. 6. 16.
테스트용으로 개발서버나 로컬의 개발 환경에서  공식적인(유료) SSL 사용이 아닌 오직 테스트 환경만을 위한 SSL 환경 설정을 하는 방법에 방법에 대하여 설명을 하도록 하겠습니다.

국내 유일무일한 티맥스소프트의 jeus에 탑재된 webtob와 아파치톰캣에서 ssl 환경 설정하는  두 가지 방법을 사용하독록 할 것입니다.

* Webtob에서 설정하는 방법입니다.
아래에서 설명하는 방법1 또는 방법2  두 가지 방법중에서 선택하여 설정을  하면  됩니다.
1 방법1
1.1 인증기관을 생성합니다.
아래에 설명되어 있는 1) 또는 2) 두 가지 방법 중에서 선택하여 설정을 하면 됩니다.
1) CA -newca
2) webtob가 설치된 디렉토리에서 차례로 다음 명령을 실행해 주시기 바랍니다.
Webtob의 ssl디렉토리로 이동합니다.
  cd ssl
순차적으로 다음을 실행합니다
mkdir demoCA
mkdir demoCA/private
echo '01' > demoCA/serial
touch demoCA/index.txt
mkdir demoCA/newcerts
openssl req -config wbssl.cnf -new -x509 -keyout demoCA/private/cakey.pem -out demoCA/cacert.pem -days 3650

days는 인증서 유효기간 일수로 샘플은 3650일로 대략 10년정도로 입럭하였습니다

chmod 400 demoCA/private/cakey.pem

디렉토리 및 파일은 다음 모양으로 나오게 됩니다.
|-- cacert.pem -> 공개키
|-- index.txt
|-- serial
|-- newcerts
|-- private
| '--cakey.pem -> 개인키

1.2 인증요구서를 만듭니다.
1) CA -newreq (newreq.pem 파일이 생성 됩니다)
* newreq.pem 파일을 열어서 server key 부분과 server csr 부분을 분리하여 각각 server.key와 server.csr로 분리 저장합니다.
2) openssl req -config wbssl.cnf -new -nodes -keyout server.key -out server.csr -days 3650

* nodes는 암호 없이 한다는 의미이며 wettob 사용 할때 넣는 옵션이며 실제 운영시에는 암호 사용을 권장합니다.

2 방법2
1) crt를 생성합니다.
openssl ca -config wbssl.cnf -policy policy_anything -out server.crt -infiles server.csr

3 WebToB SSL 설정을 합니다
다음의 http.m 파일 내용을 참조해서 파일을 수정해주세요

CertificateFile="/webtob/ssl/server.crt",
CertificateKeyFile="/webtob/ssl/server.key",
CACertificateFile="/webtob/ssl/demoCA/cacert.pem"

*DOMAIN

webtob1

*NODE

out_neiWEBTOBDIR="/webtob",

SHMKEY = 54000,

DOCROOT="/was/webapps/nei",

IPCPerm=0777,

PORT = "80,443",

HTH = 1,

#Group = "nobody",

#User = "nobody",

NODENAME = "$(NODENAME)",

ERRORDOCUMENT = "503",

JSVPORT = 9900,

LOGGING = "log1",

ERRORLOG = "log2",

SYSLOG = "log3"

*VHOST

SSLDOCROOT="/was/webapps/nei",

PORT="443",

NODENAME="out_nei",

HOSTNAME="www.nei.go.kr",

LOGGING="log4",

ERRORLOG="log5",

SSLFLAG = Y,

SSLNAME = "ssl1"

*SVRGROUP

htmlgNODENAME = "out_nei", SVRTYPE = HTML

cgigNODENAME = "out_nei", SVRTYPE = CGI

ssigNODENAME = "out_nei", SVRTYPE = SSI

jsvgNODENAME = "out_nei", SVRTYPE = JSV

*SERVER

htmlSVGNAME = htmlg, MinProc = 2, MaxProc = 10, ASQCount = 100

cgiSVGNAME = cgig, MinProc = 2, MaxProc = 10, ASQCount = 100

ssi SVGNAME = ssig, MinProc = 2, MaxProc = 10, ASQCount = 100

MyGroupSVGNAME = jsvg, MinProc = 2, MaxProc = 10, ASQCount = 100

*URI

uri1Uri = "/cgi-bin/", Svrtype = CGI

*ALIAS

alias1URI = "/cgi-bin/", RealPath = "/webtob/cgi-bin/"

*LOGGING

log1Format = "DEFAULT", FileName = "/webtob/log/access.log_%M%%D%%Y%",

Option = "sync"

log2Format = "ERROR", FileName = "/webtob/log/error.log_%M%%D%%Y%",

Option = "sync"

log3Format = "SYSLOG", FileName = "/webtob/log/system.log_%M%%D%%Y%",

Option = "sync"

log4Format = "DEFAULT", FileName = "/webtob/log/access_ssl.log_%M%%D%%Y%",

Option = "sync"

log5Format = "ERROR", FileName = "/webtob/log/error_ssl.log_%M%%D%%Y%",

Option = "sync"

*SSL

ssl1CertificateFile="/webtob/ssl/server.crt",

CertificateKeyFile="/webtob/ssl/server.key",

CACertificateFile="/webtob/ssl/demoCA/cacert.pem"

*ERRORDOCUMENT

503status = 503,

url = "/503.html"

*EXT

htmMimeType = "text/html", SvrType = HTML

doMimeType = "application/do", SVRTYPE = JSV


* Tomcat 에서의 Local SSL 개발 환경 설정 방법입니다
원도우 콘솔 창에서 진행을 하도록 하겠습니다.
윈도우 > 시작 > 실행 > cmd

1) command 윈도우에서 다음과 같이 실행합니다.
jdk 설치 디렉토리로 이동합니다.
저는 다음의 위치에  jdk를 설치 하였습니다.
cd C:\project\bin\jdk1.6.0_24\bin

keytool -genkey -alias tomcat -keyalg RSA -keystore C: \project\bin \apache-tomcat-7.0.12 \conf \keystore

참고사이트 : http://tomcat.apache.org/tomcat-7.0-doc/ssl-howto.html

C: \project\bin \apache-tomcat-7.0.12 \conf \server.xml 파일 편집을 편집 하도록 하겠습니다.

다음내용을 입력  합니다.

Tomcat 7 일 때는 다음과 같이 하면 됩니다.
<Connector port="443" maxThreads="150" 
scheme="https" secure="true" SSLEnabled="true"
keystoreFile="C: \project\bin \apache-tomcat-7.0.12 \conf \keystore"
keystorePass=“admin2011"
clientAuth="false" sslProtocol="TLS" />

Tomcat 6 일 때는 다음과 같이 설정합니다.
<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" 
keystoreFile="C:\project\bin\apache-tomcat-6.0.32\conf\keystore" 
keystorePass="admin2011" />

틀린내용이 있는지 확인을 좀 더 해봐야 겠지만 일단  작성합니다
혹시  잘못된 내용이 있으면 댓글 달아 주시면 감사하겠습니다.
 

댓글