본 문서의 목적은 "CERT 개인 인증" 서버 설치를 위해 수행하는 제반 업무에 대해 기술되어 있다.
항목 | 설명 | 비고 |
---|---|---|
WAS | Tomcat 8.5이상 | 상용 WAS를 이용하는 경우 상용 WAS에 준하여 설치 가능함 |
Java | Java version 1.8 이상 | |
CPU | 4core 이상 | |
Memory | 16GB 이상 |
항목 | 설명 | 비고 |
---|---|---|
WAS | Tomcat 8.5이상 | |
Database | Oracle 10g 이상, MARIA 5.6 이상 | DB 엔진의 경우 사전 설치되어 있어야 함 |
Java | Java version 1.8 | |
Port | 개인 인증 서버에서 사용하고자 하는 포트에 대한 방화벽 오픈 | 개인인증서버 포트 예 : 9101,9102,9103 Hazelcast 포트 예 : 19481,19482,19483 블록 체인 커넥터 예 : 9880 |
CERT 개인 인증 서버는 oracle 또는 MariaDB를 지원하므로, 서버에 해당 DB가 설치되어있다는 가정하에 설명한다. 각 DB에 해당하는 SQL을 순서에 맞게 실행한다
실행순서 | 파일명 | 설명 | 생성 테이블 개수 |
---|---|---|---|
1 | CERT_ADMIN_DDL_DB종류(HA).sql | 관리자 기능 관련 테이블 생성 쿼리문 | 12 |
2 | CERT_ADMIN_DDL_DB종류(HC_BSNES).sql | 사업자인증 기능 관련 테이블 생성 쿼리문 | 15 |
3 | CERT_ADMIN_DDL_DB종류(HC_PERSON).sql | 개인인증 관련 테이블 생성 쿼리문 | 7 |
4 | CERT_ADMIN_DML_DB종류.sql | 기초데이터 삽입 쿼리문 | - |
만료기간 전 Hecate 서버에서 발급된 라이선스 파일을 갱신한다.
# Server Setting
server:
port: 9100
# Spring Setting
spring:
profiles:
active: local
application:
name: Hecate_CERT_Person
SERVER-HOST
, PORT
, DATABASE
, YOUR-ID
, YOUR-PASSWORD
# Database 종류에 따라 주석 처리
# jndi-name 설정시 url, username, password, driver-class-name 주석 처리 및 jndi-name 주석 해제
# jndi-name 미설정시 url, username, password, driver-class-name 주석 해제 및 jndi-name 주석 처리
datasource:
# Oracle 설정
url: jdbc:oracle:thin:@SERVER-HOST:PORT:DATABASE
username: YOUR-ID
password: YOUR-PASSWORD
driver-class-name: oracle.jdbc.driver.OracleDriver
# MariaDB 설정
# url: jdbc:mariadb://SERVER-HOST:PORT/DATABASE?allowMultiQueries=true
# username: YOUR-ID
# password: YOUR-PASSWORD
# driver-class-name: org.mariadb.jdbc.Driver
# jndi-name: bchain_oracle1
oracle
, mariadb
) 수정# HECATE 공통 설정.
hecate:
# 서버명 설정
serverName: HecateCertPerson
version: "v2.0_RELEASE"
# [oracle, mariadb]
dbDriver: oracle
local
:로컬, dev
:개발, real
:운영) 수정---
spring:
profiles: local
local
:로컬, dev
:개발, real
:운영) 수정hecate:
serverMode: local
SERVER-HOST
, PORT
) 수정 # Push 도메인 주소
defaultPushServer: true
pushServer:
domain: http://SERVER-HOST:PORT/
SERVER-HOST
, PORT
) 수정 serverInfo:
# 개인 인증 발급 서버 도메인(uri)
issue:
domain: http://SERVER-HOST:PORT
# 개인 인증 서버 도메인(uri)
certify:
domain: http://SERVER-HOST:PORT
# 개인 멀티(PC) 인증 서버 도메인(uri)
pc:
domain: http://SERVER-HOST:PORT
# ECDSA 개인키, 공개키 경로 정보
ecdsa:
privatePath: /Users/uracle/module/ecdsa/privateKey.pem
publicPath: /Users/uracle/module/ecdsa/publicKey.pem
# hazelcast(IMDG:In Memory Data Grid) 정보
hazelcast:
# 개인 인증 발급 서버 도메인(uri)
issue:
port: 19491
member: 127.0.0.1
# 개인 인증 서버 도메인(uri)
certify:
port: 19492
member: 127.0.0.1
# 개인 멀티(PC) 인증 서버 도메인(uri)
pc:
port: 19493
member: 127.0.0.1
# 멀티인증 설정 영역
multiauth:
# 검증 기능을 수행하는 HECATE 제품이 설치되어 있는 서버 정보 (* DID:DID Manager 서버, CERT:CERT Certify 서버)
verifyServerInfo: http://localhost:9100
# 멀티인증에 사용하는 hazelcast(IMDG) 사용자 설정.
hazelcast:
# [배포 서버 ip 정보]
## * 다중화 서버 시 ",(콤마)" 구분자 사용하여 모두 입력
## * 다중화 서버 IP 정보 입력 시 내부망 연동 IP 정보로 입력
member: 127.0.0.1
# [5701:Hazelcast 기본 설정값]
## hazelcast(IMDG)를 연동하기 위한 제품군의 모든 설정 port를 동일값으로 설정 (* 증가된 port 정보가 아닌 최초 시작 port 정보가 동일하도록)
## 제품 배포 환경의 방화벽 및 보안정책에 맞춰 port 설정 & 배포 환경에 따라 설정 port에 대한 방화벽 오픈 확인 필요
port: 5701
# [true:port 자동 생성 사용(* 서버 다중화 운영 등 hazelcast(IMDG) 연동 서버가 다수의 경우), false:port 자동 생성 사용 안함]
portAutoIncrement: true
# [(hazelcast 연동 서버 수):hazelcast(IMDG) 연동 서버 수 만큼만 입력]
## 예1) 이중화 서버(2대) 운영 서버간 hazelcast 연동 필요 시 portCount 설정 값 :2 (* 방화벽 오픈이 필요한 경우 오픈 대상 : 5701~5702)
## 예2) MSA구조(3세트)에서 각 서버 이중화(2대) 운영 서버간 hazelcast 모두 연동 필요 시 : 6 (* 방화벽 오픈이 필요한 경우 오픈 대상 : 5701~5706)
portCount: 3
# [(백업 데이터 공유 희망 설정 수):메모리에 적재시킨 데이터의 백업 설정 수]
## 최소값 : 0
## 최대값 : hazelcast 연동 서버 수 -1
mapBackupCount: 0
# [(데이터 보관 시간[초]):메모리에 적재시킨 데이터를 사용하지 않을 경우(조회 등) 자동 삭제 처리까지의 설정 시간] (* 멀티인증 연동 client SDK[ex-로그인 client 서버] 시간 설정 동일하도록 가이드 필요)
mapTimeToLiveSeconds: 300
# [(숫자):PUSH인증 번호 검증 제한 카운트(최대 시도 가능 횟수)]
certificationConfirmCount: 5
SERVER-HOST
, PORT
) 설정 수정 # 헤카테 커넥터 도메인 설정
connector-url: http://SERVER-HOST:PORT
logMode
의 value 수정<property name="localMode" value="local" /> <!-- 로컬 설정 -->
<property name="devMode" value="dev" /> <!-- 개발 설정 여부 -->
<property name="realMode" value="real" /> <!-- 운영 설정 -->
<property name="logMode" value="${localMode}" /> <!-- 모드 설정 -->
<!-- 기본 로그 설정 -->
<!-- 로컬 로그 폴더 설정( 로컬 테스트시 해당 value의 값을 로컬 환경에 맞게 수정 ) -->
<property name="localLogDir" value="/Users/uracle/log/auth" />
<!-- 서버 로그 폴더 설정( 개발과 운영의 경로가 다를수 있음 ==> 업로드시 반드시 설정 확인 ) -->
<property name="devLogDir" value="/home/sysadm/log/auth" />
<!-- 서버 로그 폴더 설정( 개발과 운영의 경로가 다를수 있음 ==> 업로드시 반드시 설정 확인 ) -->
<property name="realLogDir" value="/bc_log/certified" />
<!-- 로그 파일명 -->
<property name="defaultLogFileName" value="/auth.log" />
<!-- 롤링 로그 파일명 -->
<property name="defaultRollingLogFileName" value="/%d{yyyy-MM-dd}_auth.log" />
############[ ISSUER CERT PATH ]###############################################
#CA_CERT_PATH=/home/halloca/web_source/module/dsMiniCa/cacert.der
#CA_CERT_PATH=/home/sysadm/module/dsMiniCa/cacert.der
CA_CERT_PATH=/Users/ymkim/eclipse-workspace/Hecate_CERT_Business/lib/cacert.der
###############################################################################
############[ ISSUER CERT PRIKEY PATH ]#######################################
#CA_CERT_PRIKEY_PATH=/home/halloca/web_source/module/dsMiniCa/capri.key
#CA_CERT_PRIKEY_PATH=/home/sysadm/module/dsMiniCa/capri.key
CA_CERT_PRIKEY_PATH=/Users/ymkim/eclipse-workspace/Hecate_CERT_Business/lib/capri.key
###############################################################################
##########[ 법인 인증서 사용 여부(CORPORATION_OPTION=Y,N) ]###########################
CORPORATION_OPTION=N
#################################################################################
##########[ 법인용 RootCa 인증서 경로 ]###############################################
#CORPORATION_CERT_PATH=/home/sysadm/module/dsMiniCa/cacert.der
CORPORATION_CERT_PATH=/Users/ymkim/eclipse-workspace/Hecate_CERT_Business/lib/cacert.der
#################################################################################
##########[ 법인용 RootCa 인증서 개인키 경로 ]#########################################
#CORPORATION_CERT_PRIKEY_PATH=/home/sysadm/module/dsMiniCa/capri.key
CORPORATION_CERT_PRIKEY_PATH=/Users/ymkim/eclipse-workspace/Hecate_CERT_Business/lib/capri.key
#################################################################################
YOUR-SERVER-IP
부분을 환경에 맞게 변경하여 SSH 터미널 접속ssh sysadm@YOUR-SERVER-IP
tomcat_9101_HecateCertPersonIssue
으로 변경cd /home/sysadm/tomcat/
tar -zxvf apache-tomcat-8.5.34.tar.gz
mv apache-tomcat-8.5.34 tomcat_9101_HecateCertPersonIssue
server.xml
파일 수정을 위해 해당 경로로 이동 후 파일 opencd tomcat_9101_HecateCertPersonIssue/conf/
vi server.xml
11105
로 변경 <Server port="11105" shutdown="SHUTDOWN">
9101
및 redirectPort 11143
으로 변경, relaxedQueryChars 옵션 추가 <Connector executor="tomcatThreadPool"
port="9101" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="11143"
URIEncoding="UTF-8" relaxedQueryChars="^{}[]|"<>"/>
/
로 변경<Host name="localhost" appBase="/home/sysadm/source/HecateCertPersonIssue" unpackWARs="false" autoDeploy="false">
<Context path="/" docBase="" reloadable="false"></Context>
....
</Host>
HecateCertBusinessIssue
디렉토리를 생성cd /home/sysadm/source/
mkdir HecateCertPersonIssue
HecateCertPersonIssue.war
파일 업로드
업로드한 war파일 압축해제unzip HecateCertPersonIssue.war -d ./HecateCertPersonIssue
cd /home/sysadm/tomcat/tomcat_9101_HecateCertPersonIssue/bin/
./startup.sh
./shutdown.sh
-------------------------------------------------------------
# # ####### ###### # ######### #######
# # # # ## # # # #
# # # # # # # #
######## ####### # ####### # #######
# # # # # # # #
# # # # ## # # # #
# # ####### ###### # # # #######
:: Uracle Hecate Auth :: v2.0_RELEASE )
-------------------------------------------------------------
{hecate.secure.serverHash=1234567890abcdef}
.
.
.
.
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.1.1.RELEASE)
14:24:41 [localhost-startStop-1]INFO [org.springframework.boot.StartupInfoLogger.class] - Starting AuthApplication with PID 3942 (/home/sysadm/source/HecateCertPersonIssue/WEB-INF/classes started by sysadm in /home/sysadm/tomcat/tomcat_9101_HecateCertPersonIssue/bin)
14:24:41 [localhost-startStop-1]INFO [org.springframework.boot.SpringApplication.class] - The following profiles are active: dev
.
.
.
.
14:24:45 [localhost-startStop-1]INFO [com.uracle.hecate.auth.issue.hazelcast.IssueHazelcastConfiguration.class] - ############[ 발급 서버 Hazelcast Info ]############
14:24:45 [localhost-startStop-1]INFO [com.uracle.hecate.auth.issue.hazelcast.IssueHazelcastConfiguration.class] - # MEMBER [ [127.0.0.1] ]
14:24:45 [localhost-startStop-1]INFO [com.uracle.hecate.auth.issue.hazelcast.IssueHazelcastConfiguration.class] - # PORT [ 19481 ]
14:24:45 [localhost-startStop-1]INFO [com.uracle.hecate.auth.issue.hazelcast.IssueHazelcastConfiguration.class] - # MAP LIVE TIME [ 300 ]
14:24:45 [localhost-startStop-1]INFO [com.uracle.hecate.auth.issue.hazelcast.IssueHazelcastConfiguration.class] - # MAP NAME [ securePassword ]
14:24:46 [localhost-startStop-1]INFO [org.springframework.scheduling.concurrent.ExecutorConfigurationSupport.class] - Initializing ExecutorService 'applicationTaskExecutor'
14:24:47 [localhost-startStop-1]INFO [org.springframework.scheduling.concurrent.ExecutorConfigurationSupport.class] - Initializing ExecutorService 'taskScheduler'
14:24:47 [localhost-startStop-1]INFO [org.springframework.boot.StartupInfoLogger.class] - Started AuthApplication in 6.369 seconds (JVM running for 13.451)
14:24:47 [localhost-startStop-1]INFO [com.uracle.hecate.auth.AuthApplication.class] - ######################## [ License Check ] ########################
14:24:47 [localhost-startStop-1]INFO [com.uracle.hecate.auth.AuthApplication.class] - # true
tomcat_9102_HecateCertPersonCertify
으로 변경cd /home/sysadm/tomcat/
tar -zxvf apache-tomcat-8.5.34.tar.gz
mv apache-tomcat-8.5.34 tomcat_9102_HecateCertPersonCertify
server.xml
파일 수정을 위해 해당 경로로 이동 후 파일 opencd tomcat_9102_HecateCertPersonCertify/conf/
vi server.xml
12106
로 변경 <Server port="11205" shutdown="SHUTDOWN">
9102
및 redirectPort 11143
으로 변경, relaxedQueryChars 옵션 추가 <Connector executor="tomcatThreadPool"
port="9102" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="11243"
URIEncoding="UTF-8" relaxedQueryChars="^{}[]|"<>"/>
/
로 변경<Host name="localhost" appBase="/home/sysadm/source/HecateCertPersonCertify" unpackWARs="false" autoDeploy="false">
<Context path="/" docBase="" reloadable="false"></Context>
....
</Host>
HecateCertPersonCertify
디렉토리를 생성cd /home/sysadm/source/
mkdir HecateCertPersonCertify
HecateCertPersonCertify.war
파일 업로드
업로드한 war파일 압축해제unzip HecateCertPersonCertify.war -d ./HecateCertPersonCertify
cd /home/sysadm/tomcat/HecateCertPersonCertify/bin/
./startup.sh
./shutdown.sh
-------------------------------------------------------------
# # ####### ###### # ######### #######
# # # # ## # # # #
# # # # # # # #
######## ####### # ####### # #######
# # # # # # # #
# # # # ## # # # #
# # ####### ###### # # # #######
:: Uracle Hecate Auth :: v1.0_RELEASE )
-------------------------------------------------------------
{hecate.secure.serverHash=1234567890abcdef}
.
.
.
.
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.1.1.RELEASE)
15:27:57 [localhost-startStop-1]INFO [org.springframework.boot.StartupInfoLogger.class] - Starting AuthApplication with PID 17229 (/home/sysadm/source/HecateCertPersonCertify/WEB-INF/classes started by sysadm in /home/sysadm/tomcat/tomcat_9102_HecateCertPersonCertify/bin)
15:27:57 [localhost-startStop-1]INFO [org.springframework.boot.SpringApplication.class] - The following profiles are active: dev
15:27:57 [localhost-startStop-1]INFO [org.springframework.boot.logging.DeferredLog.class] - For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG'
.
.
.
.
15:28:00 [localhost-startStop-1]INFO [com.uracle.hecate.auth.core.configuration.HecateModuleSDKIconloopConfiguration.class] - #########################################
15:28:00 [localhost-startStop-1]INFO [org.springframework.scheduling.concurrent.ExecutorConfigurationSupport.class] - Initializing ExecutorService 'applicationTaskExecutor'
15:28:01 [localhost-startStop-1]INFO [org.springframework.scheduling.concurrent.ExecutorConfigurationSupport.class] - Initializing ExecutorService 'taskScheduler'
15:28:01 [localhost-startStop-1]INFO [org.springframework.boot.StartupInfoLogger.class] - Started AuthApplication in 4.205 seconds (JVM running for 8.489)
15:28:01 [localhost-startStop-1]INFO [com.uracle.hecate.auth.AuthApplication.class] - ######################## [ License Check ] ########################
15:28:01 [localhost-startStop-1]INFO [com.uracle.hecate.auth.AuthApplication.class] - # true
tomcat_9103_HecateCertPersonPc
으로 변경cd /home/sysadm/tomcat/
tar -zxvf apache-tomcat-8.5.34.tar.gz
mv apache-tomcat-8.5.34 tomcat_9103_HecateCertPersonPc
server.xml
파일 수정을 위해 해당 경로로 이동 후 파일 opencd tomcat_9103_HecateCertPersonPc/conf/
vi server.xml
12107
로 변경 <Server port="11305" shutdown="SHUTDOWN">
9103
및 redirectPort 11143
으로 변경, relaxedQueryChars 옵션 추가 <Connector executor="tomcatThreadPool"
port="9203" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="11343"
URIEncoding="UTF-8" relaxedQueryChars="^{}[]|"<>"/>
/
로 변경<Host name="localhost" appBase="/home/sysadm/source/HecateCertPersonPc" unpackWARs="false" autoDeploy="false">
<Context path="/" docBase="" reloadable="false"></Context>
....
</Host>
HecateCertPersonPc
디렉토리를 생성cd /home/sysadm/source/
mkdir HecateCertPersonPc
HecateCertPersonPc.war
파일 업로드
업로드한 war파일 압축해제unzip HecateCertPersonPc.war -d ./HecateCertPersonPc
cd /home/sysadm/tomcat/tomcat_9103_HecateCertPersonPc/bin/
./startup.sh
./shutdown.sh
-------------------------------------------------------------
# # ####### ###### # ######### #######
# # # # ## # # # #
# # # # # # # #
######## ####### # ####### # #######
# # # # # # # #
# # # # ## # # # #
# # ####### ###### # # # #######
:: Uracle Hecate Auth :: v1.0_RELEASE )
-------------------------------------------------------------
{hecate.secure.serverHash=1234567890abcdef}
14:25:31 [localhost-startStop-1]INFO [org.springframework.boot.logging.DeferredLog.class] - For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG'
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.1.1.RELEASE)
14:25:31 [localhost-startStop-1]INFO [org.springframework.boot.StartupInfoLogger.class] - Starting application with PID 4371 (started by sysadm in /home/sysadm/tomcat)
14:25:31 [localhost-startStop-1]INFO [org.springframework.boot.SpringApplication.class] - The following profiles are active: dev
.
.
.
.
14:26:00 [localhost-startStop-1]INFO [com.uracle.hecate.auth.core.configuration.HecateModuleSDKIconloopConfiguration.class] - #########################################
14:26:00 [localhost-startStop-1]INFO [org.springframework.scheduling.concurrent.ExecutorConfigurationSupport.class] - Initializing ExecutorService 'applicationTaskExecutor'
14:26:00 [localhost-startStop-1]INFO [org.springframework.scheduling.concurrent.ExecutorConfigurationSupport.class] - Initializing ExecutorService 'taskScheduler'
14:26:00 [localhost-startStop-1]INFO [org.springframework.boot.StartupInfoLogger.class] - Started AuthApplication in 4.613 seconds (JVM running for 9.809)
14:26:00 [localhost-startStop-1]INFO [com.uracle.hecate.auth.AuthApplication.class] - ######################## [ License Check ] ########################
14:26:01 [localhost-startStop-1]INFO [com.uracle.hecate.auth.AuthApplication.class] - # true