이번주 월요일은 도서관 휴관일이라 잠시 쉬면서, 민원24에서 주민등록등본의 발급(리눅스 환경)을 시도해 봤습니다. 하지만 주민등록등본 발급에 실패했습니다. AnySign4PC가 계속 '미설치'라고 뜹니다.
제가 작업한 내용 및 알게된 사실을 기록해 봅니다.
1. 리눅스용 AnySign4pc가 지원하는 웹 브라우저
리눅스용 AnySign4pc는 파이어폭스에서만 작동하도록 구현되었습니다. 이는 var/lib/dpkg/info/anysign4pc.postinst(셸 스크립트) 파일에서 확인할 수 있습니다.
참고로 제가 사용한 파이어폭스의, 버전은 v60.9.0입니다.
$ firefox -v
Mozilla Firefox 60.9.0
2. 민원24에서 제공하는 AnySign4PC(v1.1.0.7) 설치하기
※ 현재 민원24에서 제공하는 AnySign4PC의 버전이 너무 낮습니다. v1.1.0.9 이후의 AnySign4PC를 사용하시는 게 좋을 것 같습니다. 왜냐하면 v1.1.0.7은 최신 데비안이 지원하지 않는 chkconfig를 사용하기 때문입니다. v1.1.0.9 이후로는 chkconfig뿐만 아니라 systemd도 함께 지원합니다.
2-1. chkconfig 설치 및 실행하기
굳이 AnySign4PC(v1.1.0.7)를 설치하려면, /etc/apt/sources.list를 아래처럼 수정하신 후에 이 변경 사항을 저장합니다. (chkconfig 패키지는 jessie 저장소에 존재합니다.)
이후 아래 명령을 실행합니다.
$ sudo apt update
$ sudo apt install chkconfig
chkconfig가 제대로 설치되었으면, /etc/apt/sources.list를 원래 상태로 되돌려 주십시오.
2-2. AnySign4PC(v1.1.0.7)를 설치
저는 64비트 시스템을 사용해서 anysign4pc_linux_x86_64.deb를 설치했습니다.
$ sudo dpkg -i anysign4pc_linux_x86_64.deb
2-3. AnySign.ex를 실행
심볼릭 링크를 설정하지 않고 AnySign.ex를 실행하면, 아래처럼 'libNativeMng.so: cannot open shared object file: No such file or directory' 메시지 발생합니다.
$ sudo /opt/anysign4pc/amd64/AnySign.ex
/opt/anysign4pc/amd64/AnySign.ex: error while loading shared libraries: libNativeMng.so: cannot open shared object file: No such file or directory
아래 명령으로 심볼릭 링크를 설정합니다. (참고: http://no1linux.org/hottips/28920)
$ sudo ln -s /opt/anysign4pc/amd64/libNativeMng.so /usr/lib/libNativeMng.so
3. AnySign4PC(v1.1.2.0)으로 설치 시도
AnySign4PC의 가장 높은 버전을 찾아보니, 그나마 v1.1.2.0이 최신 버전인 것 같아서 이 버전으로 설치를 시도했습니다. 하지만 결과는 실패입니다.
일반적으로 anysign4pc_linux*.deb를 설치하면, /var/lib/dpkg/info/anysign4pc.postinst(셸 스크립트)가 실행됩니다. anysign4pc.postinst가 실행되면서, 인증서를 생성하고 이 인증서를 파이어폭스와 연결하는 것 같습니다. 그래서 웹 브라우저는 파이어폭스만 사용이 가능합니다. 물론 anysign4pc.postinst 파일을 수정하면, 다른 웹 브라우저에서도 AnySign4PC를 사용할 수 있을 것 같기도 합니다.
이 스크립트는 우분투 또는 페도라의 버전을 확인해서 작동(if 문)하기 때문에, 데비안에서는 이 스크립트가 제대로 작동하지 않습니다. 그래서 데비안 환경에 맞게 셸 스크립트를 수정해서, AnySign4PC를 설치해봤지만, anysign4pc.service가 동작하지 않습니다.
하지만 계속 'certutil: function failed: SEC_ERROR_BAD_DATABASE: security library: bad database.' 메시지가 출력됩니다. 이 문제만 해결하면 AnySign4PC가 제대로 작동할 것 같지만, 현재로서는 해결 방법을 모르겠습니다.
참고로 anysign4pc.service의 상태는 다음과 같습니다.
$ sudo systemctl status anysign4pc.service
● anysign4pc.service - AnySign4PC
Loaded: loaded (/lib/systemd/system/anysign4pc.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Mon 2019-10-07 21:25:36 KST; 16s ago
Process: 18057 ExecStart=/etc/init.d/AnySign.linux.SysV.x64 start (code=exited, status=203/EXEC)
Main PID: 18057 (code=exited, status=203/EXEC)
10월 07 21:25:36 nt900x4c-a58 systemd[1]: anysign4pc.service: Service RestartSec=100ms expired, scheduling restart.
10월 07 21:25:36 nt900x4c-a58 systemd[1]: anysign4pc.service: Scheduled restart job, restart counter is at 5.
10월 07 21:25:36 nt900x4c-a58 systemd[1]: Stopped AnySign4PC.
10월 07 21:25:36 nt900x4c-a58 systemd[1]: anysign4pc.service: Start request repeated too quickly.
10월 07 21:25:36 nt900x4c-a58 systemd[1]: anysign4pc.service: Failed with result 'exit-code'.
10월 07 21:25:36 nt900x4c-a58 systemd[1]: Failed to start AnySign4PC.
AnySign4PC(v1.1.2.6)를 설치해봤지만, anysign4pc.service가 실행이 안 됩니다. 따라서 민원24에서 'AnySign4PC 설치 정보' 페이지에서 설치현황이 '미설치'로 나타납니다.
/var/lib/dpkg/info/anysign4pc.postinst에서 우분투 · 페도라와 관련된 내용을 제거하고, 데비안에서 동작하도록 anysign4pc.postinst를 수정해봤습니다. 하지만 여전히 anysign4pc.service가 실행이 안 됩니다.
그래서 AnySign4PC(v1.1.2.0)와 AnySign4PC(v1.1.2.6)의 anysign4pc.postinst에 차이점이 있는지 확인해봤지만, anysign4pc.postinst에 변경된 점은 전혀 없었습니다.
■ AnySign4PC(v1.1.2.6) 설치
westporch@nt900x4c-a58:~/Downloads$ sudo dpkg -i anysign4pc_linux_x86_64.deb
Selecting previously unselected package anysign4pc.
(데이터베이스 읽는중 ...현재 144316개의 파일과 디렉터리가 설치되어 있습니다.)
Preparing to unpack anysign4pc_linux_x86_64.deb ...
Unpacking anysign4pc (1.1.2.6) ...
anysign4pc (1.1.2.6) 설정하는 중입니다 ...
/var/lib/dpkg/info/anysign4pc.postinst: 26: [: -gt: unexpected operator
/var/lib/dpkg/info/anysign4pc.postinst: 75: [: -gt: unexpected operator
/etc/init.d/AnySign.linux.x64: unknown service
certutil: function failed: SEC_ERROR_BAD_DATABASE: security library: bad database.
certutil: function failed: SEC_ERROR_BAD_DATABASE: security library: bad database.
■ AnySign4PC(v1.1.2.6)의 /var/lib/dpkg/info/anysign4pc.postinst의 일부
17 if [ "$NP_PLATFORM" = "UBUNTU" ]
18 then
19 if [ $UBUNTU_VER -gt 15 ]
20 then
21 INITD_NAME=AnySign.linux.SysV.x64
22 else
23 INITD_NAME=AnySign.linux.x64
24 fi
25 else
26 if [ $FEDORA_VER -gt 23 ]
27 then
28 INITD_NAME=AnySign.linux.SysV.x64
29 else
30 INITD_NAME=AnySign.linux.x64
31 fi
32 fi
(.. 생략 ..)
63 if [ "$NP_PLATFORM" = "UBUNTU" ]
64 then
65 if [ $UBUNTU_VER -gt 15 ]
66 then
67 cp $SYSD_PATH /lib/systemd/system/anysign4pc.service
68 systemctl enable anysign4pc.service
69 else
70 ln -s /etc/init.d/$INITD_NAME /etc/rc2.d/S900AnySign4PC
71 ln -s /etc/init.d/$INITD_NAME /etc/rc3.d/S900AnySign4PC
72 ln -s /etc/init.d/$INITD_NAME /etc/rc5.d/S900AnySign4PC
73 fi
74 else
75 if [ $FEDORA_VER -gt 23 ]
76 then
77 cronCnt=`crontab -l | grep $INITD_NAME | grep -v grep | wc -l`
78 if [ $cronCnt -eq 0 ]
79 then
80 if [ -f ./cronAny.registry ]
81 then
82 rm -f ./cronAny.registry
83 fi
84
85 crontab -l >> ./cronAny.registry
86 echo "* * * * * /etc/init.d/$INITD_NAME start" >> ./cronAny.registry
87
88 crontab ./cronAny.registry
89 rm -f ./cronAny.registry
90 fi
91 else
92 chkconfig --add /etc/init.d/$INITD_NAME
93 fi
94 fi
■ anysign4pc.service의 상태 확인
westporch@nt900x4c-a58:~$ sudo systemctl status anysign4pc.service
● anysign4pc.service - AnySign4PC
Loaded: loaded (/lib/systemd/system/anysign4pc.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Mon 2019-10-21 22:13:24 KST; 1h 17min ago
Process: 946 ExecStart=/etc/init.d/AnySign.linux.SysV.x64 start (code=exited, status=203/EXEC)
Main PID: 946 (code=exited, status=203/EXEC)
10월 21 22:13:24 nt900x4c-a58 systemd[1]: anysign4pc.service: Service RestartSec=100ms expired, scheduling restart.
10월 21 22:13:24 nt900x4c-a58 systemd[1]: anysign4pc.service: Scheduled restart job, restart counter is at 5.
10월 21 22:13:24 nt900x4c-a58 systemd[1]: Stopped AnySign4PC.
10월 21 22:13:24 nt900x4c-a58 systemd[1]: anysign4pc.service: Start request repeated too quickly.
10월 21 22:13:24 nt900x4c-a58 systemd[1]: anysign4pc.service: Failed with result 'exit-code'.
10월 21 22:13:24 nt900x4c-a58 systemd[1]: Failed to start AnySign4PC.
AnySign4PC가 계속 '미설치'라고 뜹니다.
이번주 월요일은 도서관 휴관일이라 잠시 쉬면서, 민원24에서 주민등록등본의 발급(리눅스 환경)을 시도해 봤습니다. 하지만 주민등록등본 발급에 실패했습니다. AnySign4PC가 계속 '미설치'라고 뜹니다.
제가 작업한 내용 및 알게된 사실을 기록해 봅니다.
1. 리눅스용 AnySign4pc가 지원하는 웹 브라우저
리눅스용 AnySign4pc는 파이어폭스에서만 작동하도록 구현되었습니다. 이는 var/lib/dpkg/info/anysign4pc.postinst(셸 스크립트) 파일에서 확인할 수 있습니다.
참고로 제가 사용한 파이어폭스의, 버전은 v60.9.0입니다.
$ firefox -v
Mozilla Firefox 60.9.0
2. 민원24에서 제공하는 AnySign4PC(v1.1.0.7) 설치하기
※ 현재 민원24에서 제공하는 AnySign4PC의 버전이 너무 낮습니다. v1.1.0.9 이후의 AnySign4PC를 사용하시는 게 좋을 것 같습니다. 왜냐하면 v1.1.0.7은 최신 데비안이 지원하지 않는 chkconfig를 사용하기 때문입니다. v1.1.0.9 이후로는 chkconfig뿐만 아니라 systemd도 함께 지원합니다.
2-1. chkconfig 설치 및 실행하기
굳이 AnySign4PC(v1.1.0.7)를 설치하려면, /etc/apt/sources.list를 아래처럼 수정하신 후에 이 변경 사항을 저장합니다. (chkconfig 패키지는 jessie 저장소에 존재합니다.)
# Jessie
deb http://ftp.kr.debian.org/debian jessie main
deb-src http://ftp.kr.debian.org/debian jessie main
이후 아래 명령을 실행합니다.
$ sudo apt update
$ sudo apt install chkconfig
chkconfig가 제대로 설치되었으면, /etc/apt/sources.list를 원래 상태로 되돌려 주십시오.
2-2. AnySign4PC(v1.1.0.7)를 설치
저는 64비트 시스템을 사용해서 anysign4pc_linux_x86_64.deb를 설치했습니다.
$ sudo dpkg -i anysign4pc_linux_x86_64.deb
2-3. AnySign.ex를 실행
심볼릭 링크를 설정하지 않고 AnySign.ex를 실행하면, 아래처럼 'libNativeMng.so: cannot open shared object file: No such file or directory' 메시지 발생합니다.
$ sudo /opt/anysign4pc/amd64/AnySign.ex
/opt/anysign4pc/amd64/AnySign.ex: error while loading shared libraries: libNativeMng.so: cannot open shared object file: No such file or directory
아래 명령으로 심볼릭 링크를 설정합니다. (참고: http://no1linux.org/hottips/28920)
$ sudo ln -s /opt/anysign4pc/amd64/libNativeMng.so /usr/lib/libNativeMng.so
3. AnySign4PC(v1.1.2.0)으로 설치 시도
AnySign4PC의 가장 높은 버전을 찾아보니, 그나마 v1.1.2.0이 최신 버전인 것 같아서 이 버전으로 설치를 시도했습니다. 하지만 결과는 실패입니다.
일반적으로 anysign4pc_linux*.deb를 설치하면, /var/lib/dpkg/info/anysign4pc.postinst(셸 스크립트)가 실행됩니다. anysign4pc.postinst가 실행되면서, 인증서를 생성하고 이 인증서를 파이어폭스와 연결하는 것 같습니다. 그래서 웹 브라우저는 파이어폭스만 사용이 가능합니다. 물론 anysign4pc.postinst 파일을 수정하면, 다른 웹 브라우저에서도 AnySign4PC를 사용할 수 있을 것 같기도 합니다.
이 스크립트는 우분투 또는 페도라의 버전을 확인해서 작동(if 문)하기 때문에, 데비안에서는 이 스크립트가 제대로 작동하지 않습니다. 그래서 데비안 환경에 맞게 셸 스크립트를 수정해서, AnySign4PC를 설치해봤지만, anysign4pc.service가 동작하지 않습니다.
아래처럼 인증서는 생성되었습니다.
westporch@nt900x4c-a58:/opt/anysign4pc/amd64$ ./certutil -d sql:$HOME/.pki/nssdb -L
Certificate Nickname Trust Attributes
SSL,S/MIME,JAR/XPI
Hancom Secure Root CA ,,
하지만 계속 'certutil: function failed: SEC_ERROR_BAD_DATABASE: security library: bad database.' 메시지가 출력됩니다. 이 문제만 해결하면 AnySign4PC가 제대로 작동할 것 같지만, 현재로서는 해결 방법을 모르겠습니다.
참고로 anysign4pc.service의 상태는 다음과 같습니다.
$ sudo systemctl status anysign4pc.service
● anysign4pc.service - AnySign4PC
Loaded: loaded (/lib/systemd/system/anysign4pc.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Mon 2019-10-07 21:25:36 KST; 16s ago
Process: 18057 ExecStart=/etc/init.d/AnySign.linux.SysV.x64 start (code=exited, status=203/EXEC)
Main PID: 18057 (code=exited, status=203/EXEC)
10월 07 21:25:36 nt900x4c-a58 systemd[1]: anysign4pc.service: Service RestartSec=100ms expired, scheduling restart.
10월 07 21:25:36 nt900x4c-a58 systemd[1]: anysign4pc.service: Scheduled restart job, restart counter is at 5.
10월 07 21:25:36 nt900x4c-a58 systemd[1]: Stopped AnySign4PC.
10월 07 21:25:36 nt900x4c-a58 systemd[1]: anysign4pc.service: Start request repeated too quickly.
10월 07 21:25:36 nt900x4c-a58 systemd[1]: anysign4pc.service: Failed with result 'exit-code'.
10월 07 21:25:36 nt900x4c-a58 systemd[1]: Failed to start AnySign4PC.
1588-2188-5 전화했더니 해결 못하고,…
1588-2188-5 전화했더니 해결 못하고, 한컴위드 전화번호 1644-0128-1 알려주네요. 전화해서 아래와 같은 답 메일을 받았습니다. 데비안에서 시도해봐야겠네요.
안녕하세요. 한컴위드 고객센터 이청열 입니다.
AnySign4PC 1.1.2.6 버전 리눅스용 다운로드 URL 보내드리오니 설치 진행 부탁드립니다.
http://download.softforum.co.kr/Published/AnySign/v1.1.2.6/anysign4pc_linux_i386.deb
http://download.softforum.co.kr/Published/AnySign/v1.1.2.6/anysign4pc_linux_x86_64.deb
역시 안 되네요.
이건 데비안 커뮤니티가 아니라 정부차원에서 해결해야 할 문제 같네요.
여전히 anysign4pc.service가 실행이 안 됩니다.
AnySign4PC(v1.1.2.6)를 설치해봤지만, anysign4pc.service가 실행이 안 됩니다. 따라서 민원24에서 'AnySign4PC 설치 정보' 페이지에서 설치현황이 '미설치'로 나타납니다.
/var/lib/dpkg/info/anysign4pc.postinst에서 우분투 · 페도라와 관련된 내용을 제거하고, 데비안에서 동작하도록 anysign4pc.postinst를 수정해봤습니다. 하지만 여전히 anysign4pc.service가 실행이 안 됩니다.
그래서 AnySign4PC(v1.1.2.0)와 AnySign4PC(v1.1.2.6)의 anysign4pc.postinst에 차이점이 있는지 확인해봤지만, anysign4pc.postinst에 변경된 점은 전혀 없었습니다.
■ AnySign4PC(v1.1.2.6) 설치
westporch@nt900x4c-a58:~/Downloads$ sudo dpkg -i anysign4pc_linux_x86_64.deb
Selecting previously unselected package anysign4pc.
(데이터베이스 읽는중 ...현재 144316개의 파일과 디렉터리가 설치되어 있습니다.)
Preparing to unpack anysign4pc_linux_x86_64.deb ...
Unpacking anysign4pc (1.1.2.6) ...
anysign4pc (1.1.2.6) 설정하는 중입니다 ...
/var/lib/dpkg/info/anysign4pc.postinst: 26: [: -gt: unexpected operator
/var/lib/dpkg/info/anysign4pc.postinst: 75: [: -gt: unexpected operator
/etc/init.d/AnySign.linux.x64: unknown service
certutil: function failed: SEC_ERROR_BAD_DATABASE: security library: bad database.
certutil: function failed: SEC_ERROR_BAD_DATABASE: security library: bad database.
■ AnySign4PC(v1.1.2.6)의 /var/lib/dpkg/info/anysign4pc.postinst의 일부
17 if [ "$NP_PLATFORM" = "UBUNTU" ]
18 then
19 if [ $UBUNTU_VER -gt 15 ]
20 then
21 INITD_NAME=AnySign.linux.SysV.x64
22 else
23 INITD_NAME=AnySign.linux.x64
24 fi
25 else
26 if [ $FEDORA_VER -gt 23 ]
27 then
28 INITD_NAME=AnySign.linux.SysV.x64
29 else
30 INITD_NAME=AnySign.linux.x64
31 fi
32 fi
(.. 생략 ..)
63 if [ "$NP_PLATFORM" = "UBUNTU" ]
64 then
65 if [ $UBUNTU_VER -gt 15 ]
66 then
67 cp $SYSD_PATH /lib/systemd/system/anysign4pc.service
68 systemctl enable anysign4pc.service
69 else
70 ln -s /etc/init.d/$INITD_NAME /etc/rc2.d/S900AnySign4PC
71 ln -s /etc/init.d/$INITD_NAME /etc/rc3.d/S900AnySign4PC
72 ln -s /etc/init.d/$INITD_NAME /etc/rc5.d/S900AnySign4PC
73 fi
74 else
75 if [ $FEDORA_VER -gt 23 ]
76 then
77 cronCnt=`crontab -l | grep $INITD_NAME | grep -v grep | wc -l`
78 if [ $cronCnt -eq 0 ]
79 then
80 if [ -f ./cronAny.registry ]
81 then
82 rm -f ./cronAny.registry
83 fi
84
85 crontab -l >> ./cronAny.registry
86 echo "* * * * * /etc/init.d/$INITD_NAME start" >> ./cronAny.registry
87
88 crontab ./cronAny.registry
89 rm -f ./cronAny.registry
90 fi
91 else
92 chkconfig --add /etc/init.d/$INITD_NAME
93 fi
94 fi
■ anysign4pc.service의 상태 확인
westporch@nt900x4c-a58:~$ sudo systemctl status anysign4pc.service
● anysign4pc.service - AnySign4PC
Loaded: loaded (/lib/systemd/system/anysign4pc.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Mon 2019-10-21 22:13:24 KST; 1h 17min ago
Process: 946 ExecStart=/etc/init.d/AnySign.linux.SysV.x64 start (code=exited, status=203/EXEC)
Main PID: 946 (code=exited, status=203/EXEC)
10월 21 22:13:24 nt900x4c-a58 systemd[1]: anysign4pc.service: Service RestartSec=100ms expired, scheduling restart.
10월 21 22:13:24 nt900x4c-a58 systemd[1]: anysign4pc.service: Scheduled restart job, restart counter is at 5.
10월 21 22:13:24 nt900x4c-a58 systemd[1]: Stopped AnySign4PC.
10월 21 22:13:24 nt900x4c-a58 systemd[1]: anysign4pc.service: Start request repeated too quickly.
10월 21 22:13:24 nt900x4c-a58 systemd[1]: anysign4pc.service: Failed with result 'exit-code'.
10월 21 22:13:24 nt900x4c-a58 systemd[1]: Failed to start AnySign4PC.
■ anysign4pc의 버전 확인
westporch@nt900x4c-a58:/opt/anysign4pc/amd64$ ./AnySign.ex -v
1.1.2.6