티스토리 뷰

이 문서는 행정전자서명 표준API를 설정 하며 개인적으로 작성한 기록용 문서 입니다.

자세한 내용은 다루지 않고 있으므로 자세한 사항은 '표준보안 API 인증 관리 센터' 에 문의 하시기 바랍니다.

 

 

1. 기본 사항

서버 운영체제 Debian Linux 7 64Bit
JDK openjdk version "11.0.2" 2019-01-15
OpenJDK Runtime Environment 18.9 (build 11.0.2+9)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode)

 

2. 미리 알아 두기

- 표준보안 API 인증 관리 센터 : 02-818-3000 또는 02-818-3010 번 ( 2번 -> 2번 )

   통화 하기가 어렵다. 5일간회신 전화 번호를 여러번 남겨도 회신 전화는 오지 않았다.

- 행정전자서명 개발자용 가이드 : [링크] 참고 / 19.11.15 - 인증서 문제로 크롬에서 안열림

   링크 클릭 안될 경우 : https://www.gpki.go.kr/pds/ManualDetailAction.action?dto.bbs_seq=3&dto.posting_seq=582&dto.searchText=&dto.searchCombo=&nextPostseq=790

 

 

3. 표준API 모듈 

인증관리 센터에서 메일로 보내준 표준 api 모듈  압축 파일

 

모듈은 32비트와 64비트로 나뉘어져 있으며, 라이센스도 3개월간 사용 가능한 것과 정식 라이센스로 나뉘어 있다.

 

4. 모듈 업로드 및 압축 해제

64비트 운영체제와 64비트 java 를 사용하기 때문에, gpkiapiJava_v1.5.1.0_Linux_2.6.9-89.EL_x86_64_64bit_20170501.tgz 파일을 서버에 업로드 하여 압축 해제 하였다.

mfds@MFDS:~$ tar zxvf gpkiapiJava_v1.5.1.0_Linux_2.6.9-89.EL_x86_64_64bit_20170501.tgz
... 중략 ...

 

경로가 길어서 짧게 이름도 바꾸어 주었다.

mfds@MFDS:~$ mv gpkiapiJava_v1.5.1.0_Linux_2.6.9-89.EL_x86_64_64bit_20170501 gpkiapiJava_v1.5.1.0

 

 

5. CLASSPATH 및 PATH 설정

mfds@MFDS:~$ vi ~/.bashrc
export JAVA_HOME="/home/mfds/openjdk/jdk-11.0.2"
export CLASSPATH="/home/mfds/gpkiapiJava_v1.5.1.0/jar/libgpkiapi_jni.jar"
export LD_LIBRARY_PATH="/home/mfds/gpkiapiJava_v1.5.1.0/lib64"
export LIBPATH="/home/mfds/gpkiapiJava_v1.5.1.0/lib64"

export PATH=$JAVA_HOME/bin:$CLASSPATH:$LD_LIBRARY_PATH:$LIBPATH:$PATH

* 개발자용 가이드에 linux 의 bash shell 은 나와 있지 않아 LD_LIBRARY_PATH, LIBPATH 둘다 잡아 주고 혹시 몰라 PATH에 걸어 주었다.

 

 

6. 임시 라이센스 복사

인증관리센터에서 보내온 메일에 포함된 "임시 라이센스 gpkiapi.lic" 파일을 jtest 디렉토리에 복사 한다.

정식 인증서의 경우는 ESB AGENT 에서 사용 하게 된다고 한다.

mfds@MFDS:~/gpkiapiJava_v1.5.1.0/jtest$ pwd
/home/mfds/gpkiapiJava_v1.5.1.0/jtest

mfds@MFDS:~/gpkiapiJava_v1.5.1.0/jtest$ ls -al gpkiapi.lic 
-rwxr-xr-x 1 mfds mfds 248 Nov 14 11:58 gpkiapi.lic

 

7. libgpkiapi 라이브러리의 의존성 확인

mfds@MFDS:~/gpkiapiJava_v1.5.1.0/lib64$ pwd
/home/mfds/gpkiapiJava_v1.5.1.0/lib64

mfds@MFDS:~/gpkiapiJava_v1.5.1.0/lib64$ ldd libgpkiapi.so
        linux-vdso.so.1 =>  (0x00007ffd6a0cf000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fdb61a70000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fdb616e3000)
        libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fdb613dc000)
        libldap-2.2.so.7 => /home/mfds/gpkiapiJava_v1.5.1.0/lib64/libldap-2.2.so.7 (0x00007fdb62206000)
        liblber-2.2.so.7 => /home/mfds/gpkiapiJava_v1.5.1.0/lib64/liblber-2.2.so.7 (0x00007fdb612ce000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fdb62124000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fdb610b8000)
        libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007fdb60ea2000)
        libsasl2.so.2 => /usr/lib/x86_64-linux-gnu/libsasl2.so.2 (0x00007fdb60c87000)
        libssl.so.4 => not found
        libcrypto.so.4 => not found
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fdb60822000)
        libcrypto.so.1.0.0 => /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (0x00007fdb60428000)
        libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fdb60211000)

 

8. 의존성 라이브러리 설치

mfds@MFDS:~/gpkiapiJava_v1.5.1.0/lib64$ su -
Password: 
root@MFDS:~# apt-get install libssl1.0.0 libcrypto++9 libcrypto++-dev

... 중략...

 

9. libgpkiapi 의 의존성 라이브러리 심볼릭 링크 생성

mfds@MFDS:~/gpkiapiJava_v1.5.1.0/lib64$ pwd
/home/mfds/gpkiapiJava_v1.5.1.0/lib64

mfds@MFDS:~/gpkiapiJava_v1.5.1.0/lib64$ ls -al
total 3948
drwxr-xr-x 2 mfds mfds    4096 Nov 14 15:05 .
drwxr-xr-x 9 mfds mfds    4096 Nov 12 09:17 ..
-rwxr-xr-x 1 mfds mfds 3745338 Sep 21  2011 libgpkiapi.so
-rwxr-xr-x 1 mfds mfds   60752 Sep 21  2011 liblber-2.2.so.7
-rwxr-xr-x 1 mfds mfds  224104 Sep 21  2011 libldap-2.2.so.7
mfds@MFDS:~/gpkiapiJava_v1.5.1.0/lib64$ ln -s /usr/lib/x86_64-linux-gnu/libssl.so.1.0.0 libssl.so.4

mfds@MFDS:~/gpkiapiJava_v1.5.1.0/lib64$ ln -s /usr/lib/libcryptopp.so.9 libcrypto.so.4
mfds@MFDS:~/gpkiapiJava_v1.5.1.0/lib64$ ls -al
total 3948
drwxr-xr-x 2 mfds mfds    4096 Nov 14 15:05 .
drwxr-xr-x 9 mfds mfds    4096 Nov 12 09:17 ..
lrwxrwxrwx 1 mfds mfds      25 Nov 14 15:05 libcrypto.so.4 -> /usr/lib/libcryptopp.so.9
-rwxr-xr-x 1 mfds mfds 3745338 Sep 21  2011 libgpkiapi.so
-rwxr-xr-x 1 mfds mfds   60752 Sep 21  2011 liblber-2.2.so.7
-rwxr-xr-x 1 mfds mfds  224104 Sep 21  2011 libldap-2.2.so.7
lrwxrwxrwx 1 mfds mfds      41 Nov 14 14:56 libssl.so.4 -> /usr/lib/x86_64-linux-gnu/libssl.so.1.0.0

mfds@MFDS:~/gpkiapiJava_v1.5.1.0/lib64$ ldd libgpkiapi.so 
        linux-vdso.so.1 =>  (0x00007ffeef3a1000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fb0777dc000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fb07744f000)
        libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fb077148000)
        libldap-2.2.so.7 => /home/mfds/gpkiapiJava_v1.5.1.0/lib64/libldap-2.2.so.7 (0x00007fb077f72000)
        liblber-2.2.so.7 => /home/mfds/gpkiapiJava_v1.5.1.0/lib64/liblber-2.2.so.7 (0x00007fb07703a000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fb077e90000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fb076e24000)
        libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007fb076c0e000)
        libsasl2.so.2 => /usr/lib/x86_64-linux-gnu/libsasl2.so.2 (0x00007fb0769f3000)
        libssl.so.4 => /home/mfds/gpkiapiJava_v1.5.1.0/lib64/libssl.so.4 (0x00007fb076792000)
        libcrypto.so.4 => /home/mfds/gpkiapiJava_v1.5.1.0/lib64/libcrypto.so.4 (0x00007fb076084000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fb075e80000)
        libcrypto.so.1.0.0 => /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (0x00007fb075a86000)
        libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fb07586f000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fb075653000)

 

10. jtest

mfds@MFDS:~/gpkiapiJava_v1.5.1.0/jtest$ pwd
/home/mfds/gpkiapiJava_v1.5.1.0/jtest
mfds@MFDS:~/gpkiapiJava_v1.5.1.0/jtest$ ./run64.sh
 ... 중략 ...
Main.java:36: error: unmappable character (0xA8) for encoding UTF-8
System.out.println("Copyright  2005-2006 DreamSecurity Co.,Ltd.");
                              ^
Main.java:36: error: unmappable character (0xCF) for encoding UTF-8
System.out.println("Copyright  2005-2006 DreamSecurity Co.,Ltd.");
                              ^
2 errors
Unrecognized option: -d64
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

소스의 UTF-8 관련 문제와 -d64 옵션에 관련된 문제가 발생 했다. 소스의 UTF-8 문제는 인증관리센터에 전화를 하여 한글이 제거된 UTF-8 소스를 받던가, 아니면 직접 수정을 한다. 본인의 경우 인증관리센터에 전화 하였더니, 한글이 제거된 소스를 보내 준다고 하여 받아서 덮어 쓰기 하였다.

 

그림과 같이 깨진 문자와 한글을 다른 문자로 대체. 위의 그림에서 원래 문자는 ⓒ

 

-d64 의 문제는 jtest 디렉토리의 run64.sh 파일을 직접 수정 하여 해당 옵션을 사용 안하도록 하였다.

mfds@MFDS:~/gpkiapiJava_v1.5.1.0/jtest$ vi run64.sh
rm *.class
javac -classpath ../jar/libgpkiapi_jni.jar *.java

#java -d64 -classpath ../jar/libgpkiapi_jni.jar:. Main
java -classpath ../jar/libgpkiapi_jni.jar:. Main

 

mfds@MFDS:~/gpkiapiJava_v1.5.1.0/jtest$ ./run64.sh
-----------------------------------------
         gpkiapi (JAVA) Test

Copyright ⓒ 2005-2006 DreamSecurity Co.,Ltd.
-----------------------------------------

        # Module Version 

        --------------------------------------------------------------
        Version         : V1.5.1.0
        Last update     : 2010.04.22
        --------------------------------------------------------------
        Copyright (C) 2003~2009 Government Computerization Center (GCC). All rights reserved.

    >> is print log (y/n) : y

... 중략 ...
==============================================================
                          Error Count
==============================================================
CERT    : 9
CMS     : 6
CRYPTO  : 2
IVS     : 2
TSA     : 1
UTIL    : 0
--------------------------------------------------------------
TOTAL   : 20
==============================================================

위의 화면과 같이 나타나면 "표준보안 API 인증 관리 센터" 에서는 gpkiapi  표준 API 설정이 정상 적으로 된 것이라고 한다.

개발자용 메뉴얼 에서도 에러 카운트는 신경 쓰지 말라고 한다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함