Microsoft MVP성태의 닷넷 이야기
개발 환경 구성: 18.6. 인증서 관리 (1) - 내보내기/가져오기 [링크 복사], [링크+제목 복사]
조회: 26956
글쓴 사람
홈페이지
첨부 파일
 
부모글 보이기/감추기
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 를 실행시키고 "도구" 메뉴, "인터넷 옵션" 메뉴를 선택한 후, "내용"탭을 누르고 "인증서" 버튼을 누르게 되면 다음 화면과 같이 해당 인증서가 설치된 것을 확인할 수 있습니다.

설치된 인증서 확인




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





[최초 등록일: ]
[최종 수정일: 11/12/2006 ]

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

비밀번호

댓글 쓴 사람
 




[1]  2  3  4  5  6  7  8  9  10  11  12  13  14  15  ...
NoWriterDateCnt.TitleFile(s)
12005정성태8/13/2019389.NET Framework: 855. 닷넷 (및 VM 계열 언어) 코드의 성능 측정 시 주의할 점 [1]파일 다운로드1
12004정성태8/12/201996.NET Framework: 854. C# - 32feet.NET을 이용한 PC 간 Bluetooth 통신 예제 코드
12003정성태8/12/201945오류 유형: 564. Visual C++ 컴파일 오류 - fatal error C1090: PDB API call failed, error code '3'
12002정성태8/12/2019108.NET Framework: 853. Excel Sheet를 WinForm에서 사용하는 방법 - 두 번째 이야기
12001정성태8/10/2019134.NET Framework: 852. WPF/WinForm에서 UWP의 기능을 이용해 Bluetooth 기기와 Pairing하는 방법
12000정성태8/9/2019147.NET Framework: 851. WinForm/WPF에서 Console 창을 띄워 출력하는 방법파일 다운로드1
11999정성태8/1/201992오류 유형: 563. C# - .NET Core 2.0 이하의 Unix Domain Socket 사용 시 System.IndexOutOfRangeException 오류
11998정성태7/30/2019107오류 유형: 562. .NET Remoting에서 서비스 호출 시 SYN_SENT로 남는 현상파일 다운로드1
11997정성태7/30/2019266.NET Framework: 850. C# - Excel(을 비롯해 Office 제품군) COM 객체를 제어 후 Excel.exe 프로세스가 남아 있는 문제파일 다운로드1
11996정성태7/25/2019228.NET Framework: 849. C# - Socket의 TIME_WAIT 상태를 없애는 방법파일 다운로드1
11995정성태7/23/2019179.NET Framework: 848. C# - smtp.daum.net 서비스(Implicit SSL)를 이용해 메일 보내는 방법
11994정성태7/23/2019310개발 환경 구성: 454. Azure 가상 머신(VM)에서 SMTP 메일 전송하는 방법파일 다운로드1
11993정성태7/22/2019103오류 유형: 561. Dism.exe 수행 시 "Error: 2 - The system cannot find the file specified." 오류 발생
11992정성태7/22/2019150오류 유형: 560. 서비스 관리자 실행 시 "Windows was unable to open service control manager database on [...]. Error 5: Access is denied." 오류 발생
11991정성태7/18/2019168디버깅 기술: 128. windbg - x64 환경에서 닷넷 예외가 발생한 경우 인자를 확인할 수 없었던 사례
11990정성태7/18/2019340오류 유형: 559. Settings / Update & Security 화면 진입 시 프로그램 종료
11989정성태7/18/2019145Windows: 162. Windows Server 2019 빌드 17763부터 Alt + F4 입력시 곧바로 로그아웃하는 현상
11988정성태7/18/2019218개발 환경 구성: 453. 마이크로소프트가 지정한 모든 Root 인증서를 설치하는 방법
11987정성태7/17/2019266오류 유형: 558. 윈도우 - KMODE_EXCEPTION_NOT_HANDLED 블루스크린(BSOD) 문제
11986정성태7/18/2019137오류 유형: 557. 드라이브 문자를 할당하지 않은 파티션을 탐색기에서 드라이브 문자와 함께 보여주는 문제
11985정성태7/17/2019144개발 환경 구성: 452. msbuild - csproj에 환경 변수 조건 사용
11984정성태7/9/2019257개발 환경 구성: 451. Microsoft Edge (Chromium)을 대상으로 한 Selenium WebDriver 사용법
11983정성태7/8/2019186오류 유형: 556. nodemon - 'mocha' is not recognized as an internal or external command, operable program or batch file.
11982정성태7/8/2019190오류 유형: 555. Visual Studio 빌드 오류 - result: unexpected exception occured (-1002 - 0xfffffc16)
11981정성태7/7/2019333Math: 64. C# - 3층 구조의 신경망(분류)파일 다운로드1
[1]  2  3  4  5  6  7  8  9  10  11  12  13  14  15  ...