본 문서의 목적은 "CERT 법인 인증" 서버 설치를 위해 수행하는 제반 업무에 대해 기술되어 있다.
항목 | 설명 | 비고 |
---|---|---|
WAS | Tomcat 8.5이상 | 상용 WAS를 이용하는 경우 상용 WAS에 준하여 설치 가능함 |
Java | Java version 1.8 이상 | |
CPU | 4core 이상 | |
Memory | 16GB 이상 |
항목 | 설명 | 비고 |
---|---|---|
WAS | Tomcat 8.5이상 | |
Database | Oracle 10g 이상, MySql 10이상, MARIA 5.6 이상 | DB 엔진의 경우 사전 설치되어 있어야 함 |
Java | Java version 1.8 | |
Port | 법인 인증 서버에서 사용하고자 하는 포트에 대한 방화벽 오픈 | 법인인증서버 포트 예 : 9201,9202,9203 Hazelcast 포트 예 : 19491,19492,19493, 5801 Push GW 관련 포트 예 : 8081(사용하는 경우) 블록 체인 커넥터 예 : 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: 9201
# Spring Setting
spring:
profiles:
active: local
application:
name: Hecate_CERT_Business
main:
allow-bean-definition-overriding: true
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
# HECATE 공통 설정.
hecate:
# 서버명 설정
serverName: HecateCertBusiness
version: "v2.0.0_RELEASE"
# DB 드라이버 설정 [oracle, mariadb]
dbDriver: oracle
serverInfo:
certify:
serverCertVerifyToSignDoc: /api/hecate/auth/business/serverCertVerifyToSignDoc
secure:
serverHash: "-hecateBsnesAuth"
# sms 관련 설정
sms:
# sms 사용 여부
isUse: true
id: blockchain
pw: Bc2019~!@
host: 115.84.164.23
port: 80
sender: 0221332951
uri:
sms: /SMS/ext_sms_send.do
lms: /SMS/ext_lms_send.do
timeout: 5000
connectionTimeout: 5000
ioTimeout: 5000
userAgent: service.cityhall.connector.SmsSend@
version: 2006.08.04.31
# mail 관련 설정
mail:
# mail 사용 여부
isUse: true
clientKey: 5d4399793fbd338ec906d6a8
from: blockchain@test.co.kr
toHeader: "사업자 Web 관리자"
---
spring:
profiles: local
hecate:
serverMode: local
SERVER-HOST
, PORT
) 수정 # Push 도메인 주소
defaultPushServer: true
pushServer:
domain: http://222.122.205.217:8081/
SERVER-HOST
, PORT
) 수정 # 사업자 서버 정보
serverInfo:
# 사업자 발급 서버 도메인(uri)
issue:
domain: http://localhost:9200
# 사업자 인증 서버 도메인(uri)
certify:
domain: http://localhost:9200
# 사업자 멀티(PC) 인증 서버 도메인(uri)
pc:
domain: http://localhost:9200
# ECDSA 개인키, 공개키 경로 정보
ecdsa:
privatePath: /Users/ymkim/module/ecdsa/privateKey.pem
publicPath: /Users/ymkim/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:9201
# 멀티인증에 사용하는 hazelcast(IMDG) 사용자 설정.
hazelcast:
# [배포 서버 ip 정보]
## * 다중화 서버 시 ",(콤마)" 구분자 사용하여 모두 입력
## * 다중화 서버 IP 정보 입력 시 내부망 연동 IP 정보로 입력
member: 127.0.0.1
# [5701:Hazelcast 기본 설정값]
## hazelcast(IMDG)를 연동하기 위한 제품군의 모든 설정 port를 동일값으로 설정 (* 증가된 port 정보가 아닌 최초 시작 port 정보가 동일하도록)
## 제품 배포 환경의 방화벽 및 보안정책에 맞춰 port 설정 & 배포 환경에 따라 설정 port에 대한 방화벽 오픈 확인 필요
port: 5801
# [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
# 헤카테 커넥터 도메인(uri) 설정
connector-url: http://222.122.205.220:9880
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/ymkim/log/corpcert" />
<!-- 서버 로그 폴더 설정( 개발과 운영의 경로가 다를수 있음 ==> 업로드시 반듯이 설정 확인 ) -->
<property name="devLogDir" value="/home/sysadm/log/corpcert" />
<!-- 서버 로그 폴더 설정( 개발과 운영의 경로가 다를수 있음 ==> 업로드시 반듯이 설정 확인 ) -->
<property name="realLogDir" value="/bc_log/corpcert" />
<!-- 로그 파일명 -->
<property name="defaultLogFileName" value="/corpcert.log" />
<!-- 롤링 로그 파일명 -->
<property name="defaultRollingLogFileName" value="/%d{yyyy-MM-dd}_corpcert.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_PATH=/Users/ymkim/eclipse-workspace/Hecate_CERT_Business/lib/capri.key
#################################################################################
YOUR-SERVER-IP
부분을 환경에 맞게 변경하여 SSH 터미널 접속ssh sysadm@YOUR-SERVER-IP
tomcat_9201_HecateCertBusinessIssue
으로 변경cd /home/sysadm/tomcat/
tar -zxvf apache-tomcat-8.5.34.tar.gz
mv apache-tomcat-8.5.34 tomcat_9201_HecateCertBusinessIssue
server.xml
파일 수정을 위해 해당 경로로 이동 후 파일 opencd tomcat_9201_HecateCertBusinessIssue/conf/
vi server.xml
12105
로 변경 <Server port="12105" shutdown="SHUTDOWN">
9201
으로 변경, relaxedQueryChars 옵션 추가 <Connector executor="tomcatThreadPool"
port="9201" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="12143"
URIEncoding="UTF-8" relaxedQueryChars="^{}[]|"<>"/>
/
로 변경<Host name="localhost" appBase="/home/sysadm/source/HecateCertBusinessIssue" unpackWARs="false" autoDeploy="false">
<Context path="/" docBase="" reloadable="false"></Context>
....
</Host>
HecateCertBusinessIssue
디렉토리를 생성cd /home/sysadm/source/
mkdir HecateCertBusinessIssue
HecateCertBusinessIssue.war
파일 업로드
업로드한 war파일 압축해제unzip HecateCertBusinessIssue.war -d ./HecateCertBusinessIssue
cd /home/sysadm/tomcat/tomcat_9201_HecateCertBusinessIssue/bin/
./startup.sh
./shutdown.sh
-------------------------------------------------------------
# # ####### ###### # ######### #######
# # # # ## # # # #
# # # # # # # #
######## ####### # ####### # #######
# # # # # # # #
# # # # ## # # # #
# # ####### ###### # # # #######
:: Uracle Hecate business Auth :: v2.0_RELEASE
:: ServerMode [ local ]
-------------------------------------------------------------
12:54:30 [restartedMain]DEBUG [org.springframework.boot.context.logging.ClasspathLoggingApplicationListener.class] - Application started with classpath: [file:/Users/ymkim/eclipse-workspace/Hecate_CERT_Business/bin/main/]
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.1.1.RELEASE)
.
.
.
.
12:54:35 [restartedMain]DEBUG [org.springframework.core.env.PropertySourcesPropertyResolver.class] - Found key 'spring.liveBeansView.mbeanDomain' in PropertySource 'systemProperties' with value of type String
12:54:35 [restartedMain]INFO [org.apache.juli.logging.DirectJDKLog.class] - Starting ProtocolHandler ["http-nio-9201"]
12:54:35 [restartedMain]INFO [org.apache.juli.logging.DirectJDKLog.class] - Using a shared selector for servlet write/read
12:54:35 [restartedMain]INFO [org.springframework.boot.web.embedded.tomcat.TomcatWebServer.class] - Tomcat started on port(s): 9201 (http) with context path ''
12:54:35 [restartedMain]INFO [org.springframework.boot.StartupInfoLogger.class] - Started AuthApplication in 5.144 seconds (JVM running for 5.768)
12:54:35 [restartedMain]INFO [com.uracle.hecate.auth.business.AuthApplication.class] - ######################## [ License Check ] ########################
12:54:35 [restartedMain]INFO [com.uracle.hecate.auth.business.AuthApplication.class] - # true
tomcat_9202_HecateCertBusinessCertify
으로 변경cd /home/sysadm/tomcat/
tar -zxvf apache-tomcat-8.5.34.tar.gz
mv apache-tomcat-8.5.34 tomcat_9202_HecateCertBusinessCertify
server.xml
파일 수정을 위해 해당 경로로 이동 후 파일 opencd tomcat_9202_HecateCertBusinessCertify/conf/
vi server.xml
12106
로 변경 <Server port="12106" shutdown="SHUTDOWN">
9202
으로 변경, relaxedQueryChars 옵션 추가 <Connector executor="tomcatThreadPool"
port="9202" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="12243"
URIEncoding="UTF-8" relaxedQueryChars="^{}[]|"<>"/>
/
로 변경<Host name="localhost" appBase="/home/sysadm/source/HecateCertBusinessCertify" unpackWARs="false" autoDeploy="false">
<Context path="/" docBase="" reloadable="false"></Context>
....
</Host>
HecateCertBusinessCertify
디렉토리를 생성cd /home/sysadm/source/
mkdir HecateCertBusinessCertify
HecateCertBusinessCertify.war
파일 업로드
업로드한 war파일 압축해제unzip HecateCertBusinessCertify.war -d ./HecateCertBusinessCertify
cd /home/sysadm/tomcat/tomcat_9202_HecateCertBusinessCertify/bin/
./startup.sh
./shutdown.sh
-------------------------------------------------------------
# # ####### ###### # ######### #######
# # # # ## # # # #
# # # # # # # #
######## ####### # ####### # #######
# # # # # # # #
# # # # ## # # # #
# # ####### ###### # # # #######
:: Uracle Hecate business Auth :: v2.0_RELEASE
:: ServerMode [ local ]
-------------------------------------------------------------
12:54:30 [restartedMain]DEBUG [org.springframework.boot.context.logging.ClasspathLoggingApplicationListener.class] - Application started with classpath: [file:/Users/ymkim/eclipse-workspace/Hecate_CERT_Business/bin/main/]
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.1.1.RELEASE)
.
.
.
.
12:54:35 [restartedMain]DEBUG [org.springframework.core.env.PropertySourcesPropertyResolver.class] - Found key 'spring.liveBeansView.mbeanDomain' in PropertySource 'systemProperties' with value of type String
12:54:35 [restartedMain]INFO [org.apache.juli.logging.DirectJDKLog.class] - Starting ProtocolHandler ["http-nio-9202"]
12:54:35 [restartedMain]INFO [org.apache.juli.logging.DirectJDKLog.class] - Using a shared selector for servlet write/read
12:54:35 [restartedMain]INFO [org.springframework.boot.web.embedded.tomcat.TomcatWebServer.class] - Tomcat started on port(s): 9202 (http) with context path ''
12:54:35 [restartedMain]INFO [org.springframework.boot.StartupInfoLogger.class] - Started AuthApplication in 5.144 seconds (JVM running for 5.768)
12:54:35 [restartedMain]INFO [com.uracle.hecate.auth.business.AuthApplication.class] - ######################## [ License Check ] ########################
12:54:35 [restartedMain]INFO [com.uracle.hecate.auth.business.AuthApplication.class] - # true
tomcat_9203_HecateCertBusinessPc
으로 변경cd /home/sysadm/tomcat/
tar -zxvf apache-tomcat-8.5.34.tar.gz
mv apache-tomcat-8.5.34 tomcat_9203_HecateCertBusinessPc
server.xml
파일 수정을 위해 해당 경로로 이동 후 파일 opencd tomcat_9203_HecateCertBusinessPc/conf/
vi server.xml
12107
로 변경 <Server port="12107" shutdown="SHUTDOWN">
9203
으로 변경, relaxedQueryChars 옵션 추가 <Connector executor="tomcatThreadPool"
port="9203" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="12343"
URIEncoding="UTF-8" relaxedQueryChars="^{}[]|"<>"/>
/
로 변경<Host name="localhost" appBase="/home/sysadm/source/HecateCertBusinessPc" unpackWARs="false" autoDeploy="false">
<Context path="/" docBase="" reloadable="false"></Context>
....
</Host>
HecateCertBusinessPc
디렉토리를 생성cd /home/sysadm/source/
mkdir HecateCertBusinessPc
HecateCertBusinessPc.war
파일 업로드
업로드한 war파일 압축해제unzip HecateCertBusinessPc.war -d ./HecateCertBusinessPc
cd /home/sysadm/tomcat/tomcat_9203_HecateCertBusinessPc/bin/
./startup.sh
./shutdown.sh
-------------------------------------------------------------
# # ####### ###### # ######### #######
# # # # ## # # # #
# # # # # # # #
######## ####### # ####### # #######
# # # # # # # #
# # # # ## # # # #
# # ####### ###### # # # #######
:: Uracle Hecate business Auth :: v2.0_RELEASE
:: ServerMode [ local ]
-------------------------------------------------------------
12:54:30 [restartedMain]DEBUG [org.springframework.boot.context.logging.ClasspathLoggingApplicationListener.class] - Application started with classpath: [file:/Users/ymkim/eclipse-workspace/Hecate_CERT_Business/bin/main/]
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.1.1.RELEASE)
.
.
.
.
12:54:35 [restartedMain]DEBUG [org.springframework.core.env.PropertySourcesPropertyResolver.class] - Found key 'spring.liveBeansView.mbeanDomain' in PropertySource 'systemProperties' with value of type String
12:54:35 [restartedMain]INFO [org.apache.juli.logging.DirectJDKLog.class] - Starting ProtocolHandler ["http-nio-9203"]
12:54:35 [restartedMain]INFO [org.apache.juli.logging.DirectJDKLog.class] - Using a shared selector for servlet write/read
12:54:35 [restartedMain]INFO [org.springframework.boot.web.embedded.tomcat.TomcatWebServer.class] - Tomcat started on port(s): 9203 (http) with context path ''
12:54:35 [restartedMain]INFO [org.springframework.boot.StartupInfoLogger.class] - Started AuthApplication in 5.144 seconds (JVM running for 5.768)
12:54:35 [restartedMain]INFO [com.uracle.hecate.auth.business.AuthApplication.class] - ######################## [ License Check ] ########################
12:54:35 [restartedMain]INFO [com.uracle.hecate.auth.business.AuthApplication.class] - # true