IIS 7.0-SSL 인증서-갱신 또는 신규? 받았으며 원래 인증서를 발행 한 사람은

Windows 2003 IIS 7.0 서버에서 SSL 인증서 중 하나 (단순 도메인 확인 만 해당)가 곧 만료됩니다.

다른 공급 업체로부터 더 나은 제안을 받았으며 원래 인증서를 발행 한 사람은 더 낮은 가격을 협상하고 싶지 않습니다.

어쨌든 IIS의 인증서 마법사를 통해 “갱신”또는 “제거”를 한 다음 새 인증서를 설치하는 옵션이 있습니다.

따라서 “갱신”옵션을 사용하여 인증서 요청을 작성하여 새 공급 업체에게 전달할 수 있습니까? 아니면 “신규”요청으로 시작해야합니까? 새로운 서명자가 다른 서명자가 이전 인증서를 발급 한 것이 중요합니까?

문제는 이전 인증서를 제거하고 새 CSR을 생성하여 서버를 보호하지 않고 새 인증서가 설치되기를 기다리는 것입니다.

또는 기존 인증서를 제거하지 않고 새 CSR을 준비하는 옵션이 있습니까?



답변

IIS 6.0을 사용하여 임시 웹 사이트 만 만들면됩니다. IIS 7.0을 사용하면 한 번에 여러 개의 보류중인 요청을 만들 수 있습니다.

IIS 7.0에는 실제로 갱신 기능이 매우 큰 키 (원하는 것보다 훨씬 큰 키)로 CSR을 생성하는 버그가 있습니다. 따라서 갱신 옵션을 선택하는 대신 보류중인 새 요청을 작성하는 것이 좋습니다. 일단 설치되면 웹 사이트에서 SSL 바인딩을 전환하기 만하면 다운 타임이 없습니다. 또한 갱신 할 때마다 새 키를 생성하여 보안을 강화할 수 있습니다.

인증서 공급자 (CA)는 새 옵션을 사용하는지 또는 갱신 옵션을 사용하는지 상관하지 않으며 동일한 CA를 유지하거나 새 CA에서 주문할 때 옵션을 사용할 수 있습니다.


답변

인증서를 갱신하면 인증서의 만료 날짜를 업데이트하면서 동일한 공개 키와 개인 키를 유지할 수 있습니다. 라우터 나 다른 곳에 지문을 저장해야하는 경우 이점이 있습니다. 요청을 갱신하려면 동일한 발급 CA가 필요하므로 손으로 새 요청을 생성하는 것이 더 쉬울 수 있습니다.

IIS를 가동시키지 않고 새 요청을 생성하려면

인증서 요청을 수동으로 작성하여 제출할 수 있습니다. 새 인증서를 받으면 IIS7이 찾고있는 인증서를 전환하면됩니다. 어떻게 수동으로 웹 서버 SSL 인증서를 만들 수 있습니다 .

프로세스의 간단한 요점은 필요한 정보를 가진 inf 파일을 작성하는 것 certreq -new file.inf file.req입니다. 요청 파일이 있으면 인증서를 발급 할 CA에 요청 파일을 제출 한 후 명령으로 전송 한 공개 키를 승인 할 수 있습니다.certreq -accept file-from-ca.req

request.inf 예

[Version]
Signature="$Windows NT$"

[NewRequest]
Subject = "CN=fully.qualified.domain.name, OU=Organizational Unit, O=Company, L=City, S=State, C=Country"
KeySpec = 1
KeyLength = 2048
HashAlgorithm = SHA256
Exportable = FALSE
MachineKeySet = TRUE
SMIME = FALSE
PrivateKeyArchive = FALSE
UserProtected = FALSE
UseExistingKeySet = FALSE
RequestType = PKCS10
KeyUsage = 0xa0
ProviderName = "Microsoft RSA SChannel Cryptographic Provider"
FriendlyName = ""

[EnhancedKeyUsageExtension]
OID=1.3.6.1.5.5.7.3.1 ; Server Authentication

[RequestAttributes]
CertificateTemplate = WebServer

[Extensions]
2.5.29.17 = "{text}"
_continue_ = "DNS=&"
_continue_ = "DNS="

위의 예제 inf는 자체 CA에 내부적으로 사용하지만 대부분의 환경에서 작동하도록 조정할 수 있습니다. 당신은 설정할 수 있습니다Exportable키를 보관하려면 TRUE로 . 이 FriendlyName옵션은 선택 사항이며이 Extensions섹션은 대체 DNS 이름 (주체 대체 이름)을 사용하기위한 것입니다.

SAN 항목의 예는 다음과 같습니다.

[Extensions]
2.5.29.17 = "{text}"
_continue_ = "DNS=example.com&"
_continue_ = "DNS=www.example.com&"
_continue_ = "DNS=secure.example.com"

그러면 이름이 일치하지 않는다고 불평하지 않고 위의 세 사이트에서 동일한 인증서를 사용할 수 있습니다 (현대 브라우저에서는 IE6이 이해하지 못한다고 생각합니다). SAN에 정규화 된 도메인 이름 (제목의 CN)을 포함시키는 것이 중요합니다. 여러 도메인 이름이 필요하지 않은 경우 확장 영역을 완전히 제거 할 수도 있습니다 (일부 CA는이를 지원하지 않을 수도 있음).

과정

위의 정보가 저장되면 (많은 정보입니다). 다음과 같이하세요:

  1. 명령 프롬프트를 열고 위의 inf를 저장 한 디렉토리로 cd하십시오.
  2. 운영 certreq -new above.inf request.req
  3. request.req 파일을 CA에 제출하십시오. 처리하고 승인 / 거부합니다.
  4. 승인하면 공개 키를 .cer 파일로 보내야합니다.
  5. certreq -accept file-from-ca.cer키 설정을 마치려면 실행하십시오 .

행운을 빕니다!

편집하다

certreq 및 inf 파일의 전체 구문은 부록 3 : Certreq.exe 구문 (Windows Server 2003 SP1) 에서 찾을 수 있습니다 . FriendlyNameHashAlgorithm전용 서버 2008 (및 R2)이다. 명령을 실행하여 지원되는 암호화 제공자 목록을 볼 수 있습니다certutil -csplist 하고 출력을보고 . 현재 Windows 2003 SP2 상자에는 “Microsoft RSA SChannel Cryptographic Provider”가 사용 가능한 공급자로 표시되어 있으므로 파일에 따옴표가 올바르게 설정되어 있고 항목이 줄 바꿈 또는 여러 줄로되어 있지 않은지 확인하십시오.

ProviderName을 ProviderType으로 변경하고 출력에서 ​​제공 한 숫자를 사용할 수도 있습니다. certreq -csplist .

이 경우 다음과 같은 결과가 나타납니다.

Provider Name: Microsoft RSA SChannel Cryptographic Provider
Provider Type: 12

그래서 둘 중 하나를 사용할 수 있습니다

ProvderName = "Microsoft RSA SChannel Cryptographic Provider"

또는

ProviderType = 12


답변

좋아, 부분적으로 내 자신의 질문에 대답하기 위해-기존 인증서를 제거하지 않고 (즉, 서버를 중지하지 않고) 새 인증서를 작성 / 사용하는 부분 으로 Comodo 웹 사이트 에서 좋은 설명 찾았습니다. 기본적으로 “임시”웹 사이트를 작성해야합니다. 서버에서이를 사용하여 새 CSR을 작성하고 서명을 위해 전송 한 후 인증서를 수신하고 가져옵니다.

그런 다음 기본 (실제) 사이트에서 현재 인증서를 교체 한 다음 임시 인증서를 삭제해야합니다.


답변