데비안에서 주민등록등본?

Submitted by 세벌 on 2019.10.01.(Tue) - 04:51

리눅스에서도 주 민등록등본 받을 수  있다기에 데비안에서 해 봤습니다.

저는 안 되네요. 여러분은 어떤가요?

관련 글 : https://kldp.org/node/162198

westporch

Submitted: 2019.10.08.(Tue) - 01:06

Modified: 2019.10.08.(Tue) - 01:06

이번주 월요일은 도서관 휴관일이라 잠시 쉬면서, 민원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.

세벌

Submitted: 2019.10.08.(Tue) - 13:23

Modified: 2019.10.08.(Tue) - 13:23

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(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