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

비밀번호

댓글 작성자
 




... 76  77  78  79  80  [81]  82  83  84  85  86  87  88  89  90  ...
NoWriterDateCnt.TitleFile(s)
11911정성태5/23/201917486VS.NET IDE: 136. Visual Studio 2019 - 리눅스 C/C++ 프로젝트에 인텔리센스가 동작하지 않는 경우
11910정성태5/23/201927121Math: 50. C# - MathNet.Numerics의 Matrix(행렬) 연산 [1]파일 다운로드1
11909정성태5/22/201921170.NET Framework: 837. C# - PLplot 사용 예제 [1]파일 다운로드1
11908정성태5/22/201919919.NET Framework: 836. C# - Python range 함수 구현파일 다운로드1
11907정성태5/22/201916642오류 유형: 541. msbuild - MSB4024 The imported project file "...targets" could not be loaded
11906정성태5/21/201916890.NET Framework: 835. .NET Core/C# - 리눅스 syslog에 로그 남기는 방법
11905정성태5/21/201917392.NET Framework: 834. C# - 폴더 경로 문자열에서 "..", "." 표기를 고려한 최종 문자열을 얻는 방법 - 두 번째 이야기
11904정성태5/21/201925797.NET Framework: 833. C# - Open Hardware Monitor를 이용한 CPU 온도 정보 [1]파일 다운로드1
11903정성태5/21/201919617오류 유형: 540. .NET Core - System.PlatformNotSupportedException: The named version of this synchronization primitive is not supported on this platform.
11902정성태5/21/201917754오류 유형: 539. mstest 실행 시 "The directory name is invalid." 오류 발생
11901정성태5/21/201919663오류 유형: 538. msbuild 오류 - Could not find a part of the path '%LOCALAPPDATA%\Temp\2\.NETFramework,Version=v4.0.AssemblyAttributes.cs'
11900정성태5/18/201918644오류 유형: 537. "sfc /scannow" 실행 중 시스템이 부팅되는 현상
11899정성태5/17/201919468Linux: 9. Linux에서 윈도우의 OutputDebugString 대신 사용할 수 있는 syslog [1]
11898정성태5/16/201921285VC++: 130. C++ string의 c_str과 data 함수의 차이점 [3]
11897정성태5/16/201928233오류 유형: 536. Visual Studio - "Developer Pack"을 설치했는데도 "대상 프레임워크" 목록에 나오지 않는 경우 [2]
11896정성태5/15/201923185개발 환경 구성: 440. C#, C++ - double의 Infinity, NaN 표현 방식파일 다운로드1
11895정성태5/12/201921013.NET Framework: 832. ML.NET Model Builder - 회귀(Regression), 다중 분류(Multi-class classification) 예제파일 다운로드1
11894정성태5/10/201922745VS.NET IDE: 135. Visual Studio - ML.NET Model Builder 소개 [5]
11893정성태5/10/201919645오류 유형: 535. C# 6.0 이상의 문법을 컴파일 시 오류가 발생한다면?
11892정성태5/10/201919502웹: 38. HTTP Cookie의 expires 시간 형식(RFC7231)
11891정성태5/9/201922580.NET Framework: 831. (번역글) .NET Internals Cookbook Part 12 - Memory structure, attributes, handles
11890정성태5/8/201917692개발 환경 구성: 439. "Visual Studio Enterprise is required to execute the test." 메시지와 관련된 코드 기록
11889정성태5/8/201918351개발 환경 구성: 438. mstest, QTAgent의 로그 파일 설정 방법
11888정성태5/8/201935729.NET Framework: 830. C# - 비동기 호출을 취소하는 CancellationToken의 간단한 예제 코드 [1]파일 다운로드1
11887정성태5/8/201921368.NET Framework: 829. C# - yield 문을 사용할 수 있는 메서드의 조건
11886정성태5/7/201919189오류 유형: 534. mstest.exe 실행 시 "Visual Studio Enterprise is required to execute the test." 오류 [2]
... 76  77  78  79  80  [81]  82  83  84  85  86  87  88  89  90  ...