Microsoft MVP성태의 닷넷 이야기
개발 환경 구성: 18.6. 인증서 관리 (1) - 내보내기/가져오기 [링크 복사], [링크+제목 복사],
조회: 43745
글쓴 사람
정성태 (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

비밀번호

댓글 작성자
 




... 181  182  183  184  185  186  187  188  189  190  191  192  [193]  194  195  ...
NoWriterDateCnt.TitleFile(s)
127정성태3/29/200514565        답변글 VS.NET IDE: 28.4. [추가] SQL 2005 2005-02 CTP 버전에서 달라진 점
123정성태3/25/200518444    답변글 .NET Framework: 28.3. Uninstalling software without using Add Remove Programs...
108정성태3/4/200517929.NET Framework: 27. 시스템 이벤트 로그에 쌓이는 {00020906-0000-0000-C000-000000000046} 보안에러
107정성태3/1/200518138COM 개체 관련: 15. COM: Control 유형인 경우, IObjectWithSite 를 구현해도 SetSite/GetSite 가 호출이 안됨
106정성태2/28/200517429COM 개체 관련: 14. 탐색기 "처럼" 파일 열기
105정성태2/28/200516490.NET Framework: 26. VS.NET 2005 : 설치 프로젝트 - .NET Framework 설치 강제화
139정성태11/14/200514666    답변글 .NET Framework: 26.1. ^^ 역시, 배려가 되어 있네요. 제가 못 찾은 것이었습니다.
104정성태2/27/200517366VS.NET IDE: 23. MSI 설치 중에 GetLocalTime / GetSystemTime API 사용
132정성태3/30/200516982    답변글 VS.NET IDE: 23.1. [추가]: MSI 설치 동작 원리
102정성태2/16/200519643.NET Framework: 25. Verify that you are a member of the 'Debugger Users' group on the server. [2]
101정성태2/15/200517368.NET Framework: 24. WMI Win32_NTLogEvent 관리 이벤트를 Windows 2000 에서는 "Access Denied" 가 발생하는 문제파일 다운로드1
100정성태2/15/200523457VS.NET IDE: 22. 방화벽 환경에서의 WMI 연결을 위한 포트 설정 [2]
99정성태2/15/200521479COM 개체 관련: 13. 비동기 Drag & Drop 구현 : IAsyncOperation
103정성태2/23/200517686    답변글 COM 개체 관련: 13.1. [관련 자료] 그외 Drag & Drop 링크파일 다운로드1
97정성태2/14/200520642VS.NET IDE: 21. 설치된 Platform SDK 버전확인 방법
96정성태2/14/200522667기타: 9. http://www.google.com/webhp?complete=1&hl=en 검색에 관해서.
95정성태2/14/200532007VS.NET IDE: 20. Win32 특권 정리 [1]
94정성태1/29/200523305VC++: 13. VS.NET 2005 VC++ 컴파일러 에러 : cannot instantiate abstract class
93정성태1/29/200519206VS.NET IDE: 19. 혹시 VS.NET 2005 Beta2(2004/12 CTP Team System 버전)이 다운이 자주 되나요? [2]
92정성태1/29/200518024.NET Framework: 23. Unmanaged 환경에서 Managed DLL에 정의된 메서드 호출 시 오류 확인하는 방법
91정성태11/14/200518656VC++: 12. VS.NET 2005 VC++ Debug: Expression: ( (state != ST_INVALID ) )
90정성태1/27/200519460.NET Framework: 22. Debug: The underlying connection was closed: Unable to connect to the remote server.
89정성태1/26/200523951VC++: 11. Delay Loaded DLL
87정성태1/23/200517511VS.NET IDE: 18. VS.NET 2005 Beta 1 - VC++ 프로젝트에서 Connection Point 구현시 버그
88정성태1/23/200517228    답변글 VS.NET IDE: 18.1. VS.NET 2003 : VC++ 프로젝트에서 Connection Point 추가시에도 버그
86정성태1/23/200522953.NET Framework: 21. Code Snippet - Enum과 관련된 다양한 형변환 [1]
... 181  182  183  184  185  186  187  188  189  190  191  192  [193]  194  195  ...