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

비밀번호

댓글 작성자
 




... 121  122  123  124  125  126  127  128  129  130  [131]  132  133  134  135  ...
NoWriterDateCnt.TitleFile(s)
1780정성태10/15/201424168오류 유형: 249. The application-specific permission settings do not grant Local Activation permission for the COM Server application with CLSID
1779정성태10/15/201419679오류 유형: 248. Active Directory에서 OU가 지워지지 않는 경우
1778정성태10/10/201418136오류 유형: 247. The Netlogon service could not create server share C:\Windows\SYSVOL\sysvol\[도메인명]\SCRIPTS.
1777정성태10/10/201421222오류 유형: 246. The processing of Group Policy failed. Windows attempted to read the file \\[도메인]\sysvol\[도메인]\Policies\{...GUID...}\gpt.ini
1776정성태10/10/201418280오류 유형: 245. 이벤트 로그 - Name resolution for the name _ldap._tcp.dc._msdcs.[도메인명]. timed out after none of the configured DNS servers responded.
1775정성태10/9/201419395오류 유형: 244. Visual Studio 디버깅 (2) - Unable to break execution. This process is not currently executing the type of code that you selected to debug.
1774정성태10/9/201426599개발 환경 구성: 246. IIS 작업자 프로세스의 20분 자동 재생(Recycle)을 끄는 방법
1773정성태10/8/201429767.NET Framework: 471. 웹 브라우저로 다운로드가 되는 파일을 왜 C# 코드로 하면 안되는 걸까요? [1]
1772정성태10/3/201418551.NET Framework: 470. C# 3.0의 기본 인자(default parameter)가 .NET 1.1/2.0에서도 실행될까? [3]
1771정성태10/2/201428056개발 환경 구성: 245. 실행된 프로세스(EXE)의 명령행 인자를 확인하고 싶다면 - Sysmon [4]
1770정성태10/2/201421680개발 환경 구성: 244. 매크로 정의를 이용해 파일 하나로 C++과 C#에서 공유하는 방법 [1]파일 다운로드1
1769정성태10/1/201424099개발 환경 구성: 243. Scala 개발 환경 구성(JVM, 닷넷) [1]
1768정성태10/1/201419522개발 환경 구성: 242. 배치 파일에서 Thread.Sleep 효과를 주는 방법 [5]
1767정성태10/1/201424626VS.NET IDE: 94. Visual Studio 2012/2013에서의 매크로 구현 - Visual Commander [2]
1766정성태10/1/201422463개발 환경 구성: 241. 책 "프로그래밍 클로저: Lisp"을 읽고 나서. [1]
1765정성태9/30/201426044.NET Framework: 469. Unity3d에서 transform을 변수에 할당해 사용하는 특별한 이유가 있을까요?
1764정성태9/30/201422271오류 유형: 243. 파일 삭제가 안 되는 경우 - The action can't be comleted because the file is open in System
1763정성태9/30/201423845.NET Framework: 468. PDB 파일을 연동해 소스 코드 라인 정보를 알아내는 방법파일 다운로드1
1762정성태9/30/201424547.NET Framework: 467. 닷넷에서 EIP/RIP 레지스터 값을 구하는 방법 [1]파일 다운로드1
1761정성태9/29/201421562.NET Framework: 466. 윈도우 운영체제의 보안 그룹 이름 및 설명 문자열을 바꾸는 방법파일 다운로드1
1760정성태9/28/201419823.NET Framework: 465. ICorProfilerInfo::GetILToNativeMapping 메서드가 0x80131358을 반환하는 경우
1759정성태9/27/201430968개발 환경 구성: 240. Visual C++ / x64 환경에서 inline-assembly를 매크로 어셈블리로 대체하는 방법파일 다운로드1
1758정성태9/23/201437860개발 환경 구성: 239. 원격 데스크톱 접속(RDP)을 기존의 콘솔 모드처럼 사용하는 방법 [1]
1757정성태9/23/201418394오류 유형: 242. Lync로 모임 참여 시 소리만 들리지 않는 경우 - 두 번째 이야기
1756정성태9/23/201427394기타: 48. NVidia 제품의 과다한 디스크 사용 [2]
1755정성태9/22/201434194오류 유형: 241. Unity Web Player를 설치해도 여전히 설치하라는 화면이 나오는 경우 [4]
... 121  122  123  124  125  126  127  128  129  130  [131]  132  133  134  135  ...