내보내기(0) 인쇄
모두 확장

IIS 6.0에서 프로그래밍 방식으로 서버 인증서 관리

업데이트 날짜: 2005년 8월

적용 대상: Windows Server 2003, Windows Server 2003 R2, Windows Server 2003 with SP1

COM(구성 요소 개체 모델) 개체인 IISCertObj와 함께 스크립트를 사용하여 원격 및 프로그래밍 방식으로 인증서를 관리할 수 있습니다. IISCertObj를 사용하여 다음 작업을 수행할 수 있습니다.

  • 한 서버에서 여러 서버로 PFX 암호화된 인증서와 개인 키가 포함된 파일인 .pfx 파일의 인증서 복사본을 가져옵니다.

  • 중앙 사이트에 인증서의 백업 복사본을 저장합니다.

  • 한 서버에서 여러 서버로 인증서를 복사합니다.

SSL 서버 인증서를 받는 방법에 대한 자세한 내용은 서버 인증서 받기를 참조하십시오.

예제 스크립트

인증 기관에서 SSL 서버 인증서를 받은 후 모든 서버에 복사본을 배포하려면 다음 단계 중 하나 이상을 수행해야 합니다.

  • 마스터 인증서의 복사본을 여러 서버로 가져옵니다.

  • 중앙 보관소에 인증서의 백업 복사본을 저장합니다.

  • 인증서를 여러 서버에 내보냅니다.

IIS에서 WSH(Windows Script Host) 또는 ASP(Active Server Pages)를 사용할 경우 프로그래밍 방식으로 IISCertObj와 통신하는 스크립트를 실행하여 인증서를 가져오거나, 보관하거나, 내보낼 수 있습니다.

여러 서버에 인증서 가져오기(CertImport.vbs)

큰 사이트에서는 여러 서버로 로그온하는 보안 사용자에 대해 하나의 SSL 인증서를 사용해야 하는 경우가 많습니다. 각 서버에 인증서의 복사본을 추가하기 위해 MMC를 사용하면 시간이 오래 걸립니다. 모든 대상 서버에 같은 인증서의 복사본을 설치하는 스크립팅된 솔루션이 필요합니다.

Important중요
스크립트와 실행 파일을 실행하려면 로컬 컴퓨터에서 Administrators 그룹의 구성원이어야 합니다. 보안을 유지하는 가장 좋은 방법은 Administrators 그룹에 속하지 않은 계정을 사용하여 컴퓨터에 로그온한 다음 runas 명령을 사용하여 관리자 권한으로 스크립트나 실행 파일을 실행하는 것입니다. 명령 프롬프트에서 runas /profile /User:MyComputer\Administrator cmd를 입력하여 관리자 권한으로 명령 창을 연 다음 cscript.exe ScriptName(스크립트의 전체 경로와 모든 매개 변수 포함)을 입력합니다.

다음 스크립트를 CertImport.vbs로 저장합니다. 명령줄의 명령문 인수를 네트워크 리소스에 맞도록 수정합니다. 그런 다음 명령줄의 명령문을 사용하여 한 서버의 인증서 저장소에서 다른 서버로 인증서를 가져옵니다.

Option Explicit
Dim iiscertobj, pfxfile, pfxfilepassword, InstanceName, WebFarmServers, IISServer
Set iiscertobj = WScript.CreateObject("IIS.CertObj")
pfxfile = WScript.Arguments(0)
pfxfilepassword = WScript.Arguments(1)
InstanceName = WScript.Arguments(2)
WebFarmServers = split(WScript.Arguments(3), ",")
iiscertobj.UserName = WScript.Arguments(4)
iiscertobj.UserPassword = WScript.Arguments(5)
For Each IISServer in WebFarmServers
  iiscertobj.ServerName = IISServer
  iiscertobj.InstanceName = InstanceName
  iiscertobj.Import pfxfile, pfxfilepassword, true, true
Next

명령줄의 명령문:

Certimport.vbs cert.pfx pfxpassword w3svc/1 iisserver1,iisserver2,iisserver3 Administrator aal34290

중앙 보관소에 인증서 저장(Save_all_certs.vbs)

IISCertObj 내보내기 메서드를 사용하면 서버 팜의 각 인증서 백업을 중앙 사이트에 보관할 수 있습니다.

텍스트 편집기에서 다음 스크립트를 Save_all_certs.vbs로 저장합니다. 명령줄의 명령문 인수를 네트워크 리소스에 맞도록 수정합니다. 그런 다음 명령줄의 명령문을 사용하여 인증서의 복사본을 중앙 사이트로 내보냅니다.

Option Explicit
Dim iiscertobj, targetServer, targetServers, pfxbasename, pfxpassword, InstanceName
Set iiscertobj = WScript.CreateObject("IIS.CertObj")
pfxbasename = WScript.Arguments(0)
pfxpassword = WScript.Arguments(1)
InstanceName = WScript.Arguments(2)
targetServers = split(WScript.Arguments(3), ",")
iiscertobj.UserName = WScript.Arguments(4)
iiscertobj.UserPassword = WScript.Arguments(5)
iiscertobj.InstanceName = InstanceName
For Each targetServer in targetServers
  iiscertobj.ServerName = targetServer
  iiscertobj.Export pfxbasename + targetServer + ".pfx", pfxpassword, true, false, false
Next

명령줄의 명령문:

Save_all_certs.vbs C:\certbackup\ adsf-0324 w3svc/1 iisserver2,iisserver3,iisserver4 Administrator aal34290

기존 서버에서 새 서버로 인증서 복사(CertCopy.vbs)

서버 팜에 서버를 추가한 후 아래 스크립트와 명령줄의 명령문과 함께 IISCertObjcopy 메서드를 사용하여 새 서버에 인증서를 복사할 수 있습니다.

다음 스크립트를 certcopy.vbs로 저장합니다. 명령줄의 명령문 인수를 네트워크 리소스에 맞도록 수정합니다. 그런 다음 명령줄의 명령문을 실행합니다.

Option Explicit
Dim iiscertobj, targetServer, targetServers, targetInstance
Set iiscertobj = WScript.CreateObject("IIS.CertObj")
iiscertobj.ServerName = WScript.Arguments(0)
iiscertobj.Instancename = WScript.Arguments(1)
targetServers = split(WScript.Arguments(2), ",")
targetInstance = WScript.Arguments(3)
iiscertobj.UserName = WScript.Arguments(4)
iiscertobj.UserPassword = WScript.Arguments(5)
For Each targetServer in targetServers
  iiscertobj.Copy true, true, targetServer, targetInstance
Next

명령줄의 명령문:

Certcopy.vbs iisServer1 w3svc/1 iisServer2 w3svc/1 Administrator asdf-0324

이 정보가 도움이 되었습니까?
(1500자 남음)
의견을 주셔서 감사합니다.

커뮤니티 추가 항목

표시:
© 2014 Microsoft