certmgr.MSC 도구 이외의 도구를 사용하여 Windows의 명령줄에서 원격으로 설치된 인증서 및 개인 키 내보내기

certmgr.MSC 도구 이외의 도구를 사용하여 Windows의 명령줄에서 원격으로 설치된 인증서 및 개인 키 내보내기

Windows 서버의 전체 인증서 체인 및 개인 키를 사용하여 설치된 컴퓨터 인증서를 원격으로 내보낼 수 있어야 합니다. 인증서는 IIS에 사용되며 동일한 서버에서 실행되는 Apache 인스턴스에 사용하고 싶습니다.

certmgr.MSC mmc 스냅인 도구를 사용하여 수동으로 이 작업을 수행하는 방법을 알고 있지만 명령줄이나 동일한 도메인의 원격 시스템에서 이 작업을 어떻게 수행할 수 있습니까?

으로 인증서만 보는 방법도 알고 있습니다 openssl s-client. Java 키 저장소 파일로 가져오기 위해 인증서와 개인 키를 모두 저장하는 데 사용할 수 있습니까?

RDP를 통한 Certmgr이 필요한 것보다 너무 느립니다. 스크립팅 솔루션이 필요합니다.

내 환경은 전부윈도우 서버 2008R2. PowerShell 원격 기능이 켜져 있지 않지만 설정할 수 있습니다.

PowerShell Export-PfxCertificate내 서버가 충분히 새롭지 않기 때문에 을(를) 사용할 수 없음을 확인했습니다 ...

따라서 PowerShell을 사용하여 원하는 인증서의 지문을 얻을 수 있으면 이를 "certutil -exportpfx" 명령에 제공할 수 있습니다. 나는 그것이 효과가 있음을 확인했습니다.

내가 어떻게 할디렉토리"dir cert:\localmachine\my | Where-Object { $_.hasPrivateKey } | "와 같은 인증서 저장소를 만든 다음 지문을 사용하여 certutil 내보내기에 제공하시겠습니까?

아니면 먼저 dir을 수행하고 전체가 아닌 지문만 인쇄하도록 지시할 수 있습니까? 그런 다음 이를 파일에 저장하고 파일을 읽어 certutil 명령을 만드시겠습니까?

답변1

스택 오버플로 질문을 참조하세요.PowerShell을 사용하여 IIS에서 인증서 내보내기.

대답이 효과가 있으면 다음을 사용하여 원격 서버에서 PowerShell 코드를 실행할 수 있습니다 PSRemoting(Enter-PSSession또는호출 명령) 또는psexec.

"dir cert:\localmachine\my | Where-Object { $_.hasPrivateKey } | "와 같이 인증서 저장소를 디렉터리로 지정하고 이를 지문과 함께 certutil 내보내기에 공급하는 방법을 아는 사람이 있습니까?

이것을 시도해보십시오. 나에게 효과적입니다.

Get-ChildItem -Path 'Cert:\localmachine\My' |
    Where-Object { $_.hasPrivateKey } |
        Foreach-Object {
            &certutil.exe @('-exportpfx', '-p', 'secret',  $_.Thumbprint, "$($_.Subject).pfx")
         }

조심하세요Subject때로는 파일 이름으로 사용할 수 없는 경우도 있습니다., 유니코드의 잘못된 외국어 문자로 인해 발생합니다.

답변2

Windows 서버의 긴 목록에서 원격으로 인증서를 내보내려면 PowerShell에서 이 작업을 수행합니다. $servers는 서버 목록입니다.

foreach ($server in $servers){
Invoke-command $server {
Get-ChildItem -Path 'Cert:\localmachine\My' |
Where-Object { $_.hasPrivateKey } |
Foreach-Object {&certutil.exe @('-exportpfx', '-f', '-p','your_password',$_.Thumbprint, "d:\$($_.Subject).pfx")}
    }
    Move-Item -Path \\$server\d$\*.pfx -Destination C:\$server.pfx -Force
}

Java keytool.exe를 사용하여 각 pfx 파일을 JKS 키 저장소 파일로 변환합니다. Keytool은 모든 Java 설치의 일부입니다. 이 작업은 로컬 컴퓨터에서 수행하거나 이미 Java가 설치된 경우 원격 서버에서 수행할 수 있습니다.

keytool.exe -importkeystore -srckeystore C:\server1.pfx -destkeystore C:\server1.jks -srcstoretype pkcs12 -deststoretype JKS -srcstorepass your_password -deststorepass your_password

Powershell을 사용하여 이를 실행할 수도 있습니다($server는 서버 이름입니다)($pwd는 파일을 암호화하는 데 사용하는 비밀번호를 보유하는 변수입니다).

foreach ($server in $servers){
& "C:\Program Files\Java\jre6\bin\keytool.exe" -importkeystore -srckeystore C:\$server.pfx -destkeystore C:\$server.jks -srcstoretype pkcs12 -deststoretype JKS -srcstorepass $pwd -deststorepass $pwd

}

답변3

  1. 관리자로 mmc 열기
  2. 메뉴파일-> 스냅인 추가/제거( Ctrl+ M)
  3. 선택인증서왼쪽 창에서 스냅인을 누르고추가하다
  4. 선택하다컴퓨터 계정(세 번째 옵션)
  5. 선택하다다른 컴퓨터인증서를 관리하려는 원격 시스템의 이름을 입력하세요.
  6. 대화 상자를 완료하고 확인을 누르십시오.

이름은 약간 다를 수 있습니다. 제 OS가 독일어라서 대충 다 번역했습니다.

관련 정보