Microsoft MVP성태의 닷넷 이야기
개발 환경 구성: 18.6. 인증서 관리 (1) - 내보내기/가져오기 [링크 복사], [링크+제목 복사],
조회: 38032
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 
부모글 보이기/감추기
(연관된 글이 9개 있습니다.)
5.1 인증서 관리 - 내보내기/가져오기


"4. 사용자 인증서 발급" 글을 읽으시고 직접 실습을 해보신 분들은 자신만의 인증서가 컴퓨터에 설치되었을 텐데요. 여기서 잠깐, 우리가 흔히 하는 "인터넷 뱅킹"을 생각해 보도록 하겠습니다. 흔히들, 인터넷 뱅킹을 하시는 분들은 "회사"와 "집"에서 모두 할 수 있기를 원합니다. 실제로 그렇게 할 수 있도록 각 은행의 "인증서 관리자"는 여러분들의 인증서를 "내보내기", "가져오기" 할 수 있는 기능을 제공해 주고 있습니다. 그렇다면, "Windows" 환경에서는 그러한 과정을 어떻게 할 수 있을까요?

"인증서"는 그 의미만큼이나 꽤나 중요한 자산이므로 매우 신중한 보호가 필요합니다. 하지만, 그렇다고 해서 모든 "인증서"가 보호 대상이 되는 것은 아닙니다. 왜냐하면 "개인키"가 없는 "공개키"만을 담고 있는 인증서도 있기 때문입니다. 실제로 여러분들의 컴퓨터에 등록된 대부분의 인증서들이 바로 그런 경우입니다. 예를 들어, 아래 화면과 같이 "Personal" 탭을 제외한 다른 탭들, "Other People", "Intermediate Certification Authorities", "Trusted Root Certification Authorities"에 있는 거의 대부분의 인증서들은 "공개키"만을 담고 있습니다.

대부분의 인증서가 공개키만을 담고 있는 저장소

반면에, "4. 사용자 인증서 발급"에서 설명한데로 설치된 인증서는 "개인키"를 담고 있는 인증서입니다. 그럼, 어떻게 개인키가 있는지 확인할 수 있을까요? 일단 프로그래밍을 통한 방법을 제외하고는 아래 화면에서와 같이 아무 인증서나 선택하고 "View" 버튼을 눌러 보시면 그에 대한 정보를 보여주기 때문에 바로 알 수 있습니다.

[그림 1: 인증서 목록]
인증서들

예를 들어, 개인키를 담고 있는 인증서는 아래 화면과 같이 분명하게 "You have a private key that corresponds to this certificate."라고 지정이 되어 있습니다.

[개인키를 담고 있는 인증서]
개인키를 담고 있는 인증서

반대로 공개키만을 담고 있다면 아래 화면과 같이 개인키에 대한 언급이 없습니다.

[공개키만을 담고 있는 인증서]
공개키만을 담고 있는 인증서

한 가지 유의하셔야 할 것은, 이와 같이 "개인키"를 담은 인증서가 모두 "개인키와 함께" 내보내기가 가능하지는 않다는 것입니다. 실제로 개인키에 대한 보안을 좀 더 높이기 위한 차원에서, 외부로 "내보내기 가능한"(exportable) 유형과 그렇지 못한 유형으로 또 나뉘게 됩니다. 역시 이에 대한 확인 방법도 간단합니다. 위의 [그림 1: 인증서 목록]에서 "개인키"를 가지고 있는 인증서들 중에서 아무거나 선택한 다음 하단의 "Export..." 버튼을 눌러 봅니다.

만약 해당 인증서가 "개인키를 포함해서 외부로 내보내기 가능한 유형"이라면 아래 화면과 같이 "export the private key" 메뉴가 제공이 됩니다.

개인키 내보내기가 가능한 인증서

만약 해당 인증서가 개인키 내보내기를 지원하지 않도록 설정이 되었다면 다음 화면과 같이 해당 메뉴가 선택 가능한 상태로 나오지 않습니다.

개인키 내보내기가 불가능한 인증서




[인증서 내보내기]

자, 그럼 이제 여러분들이 옮기려는 인증서가 어떤 유형에 속하는지 확인해 보시고, 개인키가 외부로 내보내기 가능한 형태라면 다음의 순서를 따라서 해당 인증서를 복사해 주시면 됩니다.

1. 복사하고자 하는 인증서를 Internet Explorer의 인증서 관리 화면에서 아래와 같이 선택을 한 후, "Export..." 버튼을 누릅니다.

인증서 선택

2. 이제부터 인증서 내보내기 위저드가 뜨게 됩니다. 첫 화면은 그냥 "다음" 버튼을 눌러서 넘어갑니다.

3. "내보내기"할 인증서에 개인키도 함께 넣을지를 물어봅니다. "Yes, export the private key" 메뉴를 선택하고 "다음" 버튼을 누릅니다.

개인키 포함 여부

4. 개인키를 담을 수 있는 포맷인 "PFX"로만 파일 저장이 가능하므로 다른 포맷들은 모두 선택이 불가능한 상태로 됩니다. 만약 개인키를 "이동"시킬 목적이라면 "Delete the private key if the export is successful" 옵션을 체크해 줍니다. 여기서는 "복사"할 목적이기 때문에 기본으로 설정하고 "다음" 버튼을 누르겠습니다. ("개발 환경 구성: 7. ActiveX 서명 과정 자동화" 과정도 pfx 파일을 이용한 예입니다.)

파일 포맷

5. 보안이 다소 허술해지는 "파일" 미디어로 저장되는 것이므로, "개인키가 담긴 인증서"를 보호하기 위해 내용을 암호화시키게 됩니다. 이에 사용될 "Key"를 물어보게 되는데, 적절하게 원하는 암호를 입력하고 "다음"을 누릅니다.

암호키

6. 저장될 파일 경로를 물어옵니다. 적절한 경로를 입력하고 "다음"을 누릅니다.

인증서가 저장될 파일 경로 입력

7. 마지막으로, 입력되었던 사항들을 확인합니다. "마침" 버튼을 누르면 지정된 경로의 파일로 "개인키를 담은 인증서"가 내보내집니다.

확인




[가져오기 - PFX 인증서 파일을 대상 컴퓨터에 설치]

이제 여러분들의 하드 디스크에는 "C:\my_secure_cert.pfx" 파일이 생성되었을 것입니다. 이 파일을 여러분들이 원하는 컴퓨터에 복사하고, 바로 그 컴퓨터에서 인증서를 설치해 주시면 됩니다. 구체적인 단계는 다음과 같습니다.

1. 해당 컴퓨터의 탐색기에서 pfx 파일을 두 번 클릭하면 다음 화면과 같이 인증서 설치를 위한 위저드가 실행됩니다. "다음" 버튼을 누릅니다.

새로운 인증서 설치

2. 파일 경로가 미리 지정되어 있으므로 그냥 "다음" 버튼을 눌러 줍니다.

파일 경로 지정

3. 위의 "인증서 내보내기 - 5번" 항목에서 설정했던 그 암호를 입력해 줍니다.

암호 확인

4. 인증서가 위치할 "저장소" 영역을 지정합니다. 그냥 여기서는 자동으로 두고 "다음" 버튼을 누르겠습니다.

저장소 선택

5. 마지막으로 입력 사항들을 확인하고 "마침" 버튼을 누르면 해당 인증서가 성공적으로 설치되게 됩니다. Internet Explorer를 실행시키고 "도구" 메뉴, "인터넷 옵션" 메뉴를 선택한 후, "내용" 탭을 누르고 "인증서" 버튼을 누르게 되면 다음 화면과 같이 해당 인증서가 설치된 것을 확인할 수 있습니다.

설치된 인증서 확인




[이 토픽에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]

[연관 글]






[최초 등록일: ]
[최종 수정일: 6/15/2021]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




... 31  32  33  34  [35]  36  37  38  39  40  41  42  43  44  45  ...
NoWriterDateCnt.TitleFile(s)
12775정성태8/12/202118796스크립트: 22. 파이썬 - 윈도우 환경에서 개발한 Django 앱을 WSL 환경의 gunicorn을 이용해 실행
12774정성태8/11/20219135.NET Framework: 1087. C# - Collection 개체의 다중 스레드 접근 시 "Operations that change non-concurrent collections must have exclusive access" 예외 발생
12773정성태8/11/20218321개발 환경 구성: 595. PyCharm - WSL과 연동해 Django App을 윈도우에서 리눅스 대상으로 개발
12772정성태8/11/20219754스크립트: 21. 파이썬 - 윈도우 환경에서 개발한 Django 앱을 WSL 환경의 uwsgi를 이용해 실행 [1]
12771정성태8/11/20218208Windows: 196. "Microsoft Windows Subsystem for Linux Background Host" / "Vmmem"을 종료하는 방법
12770정성태8/11/20219022.NET Framework: 1086. C# - Windows Forms 응용 프로그램의 자식 컨트롤 부하파일 다운로드1
12769정성태8/11/20216805오류 유형: 752. Python - ImportError: No module named pip._internal.cli.main 두 번째 이야기
12768정성태8/10/20217909.NET Framework: 1085. .NET 6에 포함된 신규 BCL API [1]파일 다운로드1
12767정성태8/10/20218959오류 유형: 752. Python - ImportError: No module named pip._internal.cli.main
12766정성태8/9/20217411Java: 32. closing inbound before receiving peer's close_notify
12765정성태8/9/20216754Java: 31. Cannot load JDBC driver class 'org.mysql.jdbc.Driver'
12764정성태8/9/202145229Java: 30. XML document from ServletContext resource [/WEB-INF/applicationContext.xml] is invalid
12763정성태8/9/20218264Java: 29. java.lang.NullPointerException - com.mysql.jdbc.ConnectionImpl.getServerCharset
12762정성태8/8/202111785Java: 28. IntelliJ - Unable to open debugger port 오류
12761정성태8/8/20218924Java: 27. IntelliJ - java: package javax.inject does not exist [2]
12760정성태8/8/20216267개발 환경 구성: 594. 전용 "Command Prompt for ..." 단축 아이콘 만들기
12759정성태8/8/20219533Java: 26. IntelliJ + Spring Framework + 새로운 Controller 추가 [2]파일 다운로드1
12758정성태8/7/20218855오류 유형: 751. Error assembling WAR: webxml attribute is required (or pre-existing WEB-INF/web.xml if executing in update mode)
12757정성태8/7/20219559Java: 25. IntelliJ + Spring Framework 프로젝트 생성
12756정성태8/6/20218285.NET Framework: 1084. C# - .NET Core Web API 단위 테스트 방법 [1]파일 다운로드1
12755정성태8/5/20217506개발 환경 구성: 593. MSTest - 단위 테스트에 static/instance 유형의 private 멤버 접근 방법파일 다운로드1
12754정성태8/5/20218369오류 유형: 750. manage.py - Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
12753정성태8/5/20218635오류 유형: 749. PyCharm - Error: Django is not importable in this environment
12752정성태8/4/20216705개발 환경 구성: 592. JetBrains의 IDE(예를 들어, PyCharm)에서 Visual Studio 키보드 매핑 적용
12751정성태8/4/20219794개발 환경 구성: 591. Windows 10 WSL2 환경에서 docker-compose 빌드하는 방법
12750정성태8/3/20216559디버깅 기술: 181. windbg - 콜 스택의 "Call Site" 오프셋 값이 가리키는 위치
... 31  32  33  34  [35]  36  37  38  39  40  41  42  43  44  45  ...