Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 
(연관된 글이 3개 있습니다.)
인증서 갱신 오류 - The request contains no certificate template information.

테스트 서버의 이벤트 로그에 며칠 전부터 이상한 경고성 로그가 발견되었습니다.

Log Name:      Application
Source:        Microsoft-Windows-CertificateServicesClient-AutoEnrollment
Date:          3/30/2011 10:54:17 AM
Event ID:      64
Task Category: None
Level:         Warning
Keywords:      Classic
User:          N/A
Computer:      adserverr2.TestAD.kr
Description:
Certificate for local system with Thumbprint ...[생략]... is about to expire or already expired.

지정된 "Thumbprint"의 인증서는 AD 인증 서버로부터 발급받은 것으로 실제로 만료 시간이 올해 5월로 다가오고 있었습니다.

이를 해결하기 위해 "인증서 관리자" MMC 콘솔을 실행하고, 갱신을 다음과 같이 "Advanced Options" / "Renew This Certificate with the Same Key..." 메뉴를 이용해서 실행했습니다.

how_to_renew_cert_1.png

오호, 그런데 다음과 같은 에러가 발생합니다.

how_to_renew_cert_2.png

"
Enrollment error
The request contains no certificate template information.
"


검색을 해봐도 이에 관해서는 딱히 적당한 해결책이 나오지 않았습니다. 할 수 없이, 알고 있는 방법 중에서 차선책으로 CA 측에서 제공하는 웹 인터페이스를 이용해 보았습니다.

이를 위해, 기존 만료되어가는 인증서를 "Base-64 encoded X.509" 포맷으로 내보낸 후, "http://localhost/certsrv/default.asp" 페이지를 방문, "Request a certificate" / "advanced certificate request" / "Submit a certificate request by using a base-64-encoded CMC or PKCS #10 file, or submit a renewal request by using a base-64-encoded PKCS #7 file." 링크까지 연결해서 다음과 같이 certrqxt.asp 페이지에서 제출해 보았습니다.

how_to_renew_cert_3.png

사실, 그렇게 하는 것이 올바른지도 모르겠지만 이것저것 아는 데로 시도해보는 수밖에 없었지요. 아쉽게도 결론은 다음과 같은 에러만 볼 수 있을 뿐이었습니다.

"
Your certificate request was denied.

Your Request Id is 0. The disposition message is "Error Parsing Request ASN1 bad tag value met. 0x8009310b (ASN: 267)".

Contact your administrator for further information.
"


더 이상 생각나는 것이 없어서, 일단 여기서 포기... 까지 하려고 했는데요. ^^




천천히, 다시 생각해 봤습니다. 음... 그러고 보니 이 인증서를 IIS 관리자에서 발급 신청했었던 것 같습니다. 옳거니... 그렇다면 갱신도 IIS 관리자에서 해봐야 겠다는 생각이 들었습니다. IIS 관리자를 실행하고, "Server Certificates" 기능에서 해당 인증서를 선택하고 "Renew..." 메뉴를 실행했습니다.

how_to_renew_cert_4.png

대화창이 뜨고 나서, 다음과 같이 "Renew an existing certificate"를 선택하고,

how_to_renew_cert_5.png

그러면 CA 서버 지정 화면이 나옵니다. 입력 형식이 "CertificateAuthorityName\ServerName"이라고 하는데, 일단 CA 이름은 "CA 관리자" MMC 콘솔을 실행한 경우 보이는 노드의 "w32.sysnet.pe.kr" 이름을 가져왔고, "ServerName" 영역은 CA 서버가 설치된 컴퓨터의 이름을 입력했습니다.

how_to_renew_cert_6.png

그렇게 해서 완료 버튼을 누르니 다음과 같이 요청이 전달되었으나 발행이 안되었다는 메시지를 볼 수 있습니다. (대화창의 아이콘과는 다르게 다행히 이것은 오류가 아닙니다.)

how_to_renew_cert_7.png

"
Renew an Existing Certificate

The certificate request was submitted to the online authority, but was not issued.
"


일단, "OK" 버튼을 누르고 "Cancel" 버튼을 눌러 "Renew an Existing Certificate" 대화창을 빠져나갑니다.

그런 후, CA 관리자에 가보면 다음과 같이 "Pending Requests"에 방금 전의 인증서 요청 항목이 있는 것을 확인할 수 있습니다.

how_to_renew_cert_8.png

보류 중인 해당 인증서를 선택하고 마우스 오른쪽 버튼을 눌러, "Issue"를 해주면, "Issued Certificates" 노드로 인증서가 이동합니다. 그렇게 해서 발급 완료된 인증서를 "Base-64 encoded X.509" 파일로 내보내기해서 저장해 둡니다.

다시 IIS 관리자로 돌아와서, 이번에는 만료가 가까워진 그 인증서를 선택하고 "Complete Certificate Request..." 메뉴를 실행합니다.

how_to_renew_cert_9.png

파일을 지정하는 대화창이 나오면, 위에서 저장해 둔 cer 파일을 지정하면, 인증서 갱신이 정상적으로 완료됩니다.



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

[연관 글]






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

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

비밀번호

댓글 작성자
 




1  2  3  4  5  6  7  8  9  [10]  11  12  13  14  15  ...
NoWriterDateCnt.TitleFile(s)
13693정성태7/24/20247233개발 환경 구성: 717. Visual Studio - C# 프로젝트에서 레지스트리에 등록하지 않은 COM 개체 참조 및 사용 방법파일 다운로드1
13692정성태7/24/20248010디버깅 기술: 199. Windbg - 리눅스에서 뜬 닷넷 응용 프로그램 덤프 파일에 포함된 DLL의 Export Directory 탐색
13691정성태7/23/20247369디버깅 기술: 198. Windbg - 스레드의 Win32 Message Queue 정보 조회
13690정성태7/23/20247005오류 유형: 919. Visual C++ 리눅스 프로젝트 - error : ‘u8’ was not declared in this scope
13689정성태7/22/20248491디버깅 기술: 197. Windbg - PE 포맷의 Export Directory 탐색
13688정성태7/21/20247615닷넷: 2281. C# - Lock / Wait 상태에서도 일부 Win32 메시지 처리파일 다운로드1
13687정성태7/19/20248045닷넷: 2280. C# - PostThreadMessage로 보낸 메시지를 Windows Forms에서 수신하는 방법파일 다운로드1
13686정성태7/19/20247842오류 유형: 918. Visual Studio - ATL Simple Object 추가 시 error C2065: 'IDR_...': undeclared identifier
13685정성태7/19/20247990스크립트: 66. Windows 디렉터리 경로를 WSL의 /mnt 포맷으로 구하는 방법 - 두 번째 이야기
13684정성태7/19/20248160닷넷: 2279. C# - 문자열 보간식 사례 (예: 조건 연산자 사용)
13683정성태7/18/20247637오류 유형: 917. ClrMD - Linux 환경의 .NET 5 덤프 분석 시 hang 현상
13682정성태7/18/20247854닷넷: 2278. WPF - 스레드에 종속되는 DependencyObject파일 다운로드1
13681정성태7/17/20247459닷넷: 2277. C# 13 - (2) 메서드 그룹의 자연 타입 개선 (메서드 추론 개선)파일 다운로드1
13680정성태7/16/20247818닷넷: 2276. C# - Method Group, Natural Type, function_type파일 다운로드1
13679정성태7/16/20246922Linux: 76. Linux - C++ (getaddrinfo 등을 담고 있는) libnss 정적 링크
13678정성태7/15/20247051VS.NET IDE: 191. Visual Studio 2022 - .NET 5 프로젝트를 Docker Support로 실행했을 때 오류
13677정성태7/15/20247124오류 유형: 916. MSBuild - CheckEolTargetFramework (warning NETSDK1138)
13676정성태7/14/20247312Linux: 75. gdb에서 glibc의 함수에 Breakpoint 걸기
13675정성태7/13/20249097C/C++: 166. C/C++ - DLL에서 template 함수를 export하는 방법 [1]파일 다운로드1
13674정성태7/13/20247984오류 유형: 915. Unhandled Exception: Microsoft.Diagnostics.NETCore.Client.ServerNotAvailableException: Unable to connect to Process
13673정성태7/11/20248424닷넷: 2275. C# 13 - (1) 신규 이스케이프 시퀀스 '\e'파일 다운로드1
13672정성태7/10/20247142닷넷: 2274. IIS - (프로세스 종료 없는) AppDomain Recycle
13671정성태7/10/20247248오류 유형: 914. Package ca-certificates is not installed.
13669정성태7/9/20247366오류 유형: 913. C# - AOT StaticExecutable 정적 링킹 시 빌드 오류
13668정성태7/8/20247381개발 환경 구성: 716. Hyper-V - Ubuntu 22.04 Generation 2 유형의 VM 설치
13667정성태7/7/20246608닷넷: 2273. C# - 리눅스 환경에서의 Hyper-V Socket 연동 (AF_VSOCK)파일 다운로드1
1  2  3  4  5  6  7  8  9  [10]  11  12  13  14  15  ...