SHA-1보다 강력한 자체 서명 인증서를 만들려면 어떻게 해야 합니까?

SHA-1보다 강력한 자체 서명 인증서를 만들려면 어떻게 해야 합니까?

개발 환경의 경우 IIS7.5에서 자체 서명된 인증서를 만들 수 있습니다. 하지만 해당 인증서는 SHA-1이며 최근 브라우저에서 이에 대해 불만을 제기하고 있습니다. FireBug를 열면 다음 경고가 표시됩니다.

"이 사이트는 SHA-1 인증서를 사용합니다. SHA-1보다 강력한 해시 기능을 사용하는 서명 알고리즘이 포함된 인증서를 사용하는 것이 좋습니다."

그래서 내 질문은 다음과 같습니다

1) SHA-1보다 강력한 자체 서명 인증서를 생성하는 방법이 있습니까?

2) 그렇지 않은 경우 브라우저에 이러한 경고 표시를 중지하도록 지시하는 방법이 있습니까?

업데이트

결국 @vcsjones 답변을 사용하게 되었지만 지금까지는 그렇게밖에 얻지 못했습니다. 작동시키기 전에 해결해야 할 몇 가지 문제가 있습니다.

1) 어떤 이유로 비밀번호가 포함된 인증서를 가져올 수 없습니다. 그래서 결국 그것 없이 하나를 만들었습니다.

2) IIS를 통해 .pfx 인증서를 가져올 때 바인딩 편집에서 새 인증서를 적용하려고 하면 "지정된 로그온 세션이 존재하지 않습니다"라는 메시지가 계속 표시됩니다. 그래서 나는 거의 조사를 하지 않았고 이것을 발견했습니다그래서 대답유용합니다. 특히 Mike L의 답변입니다.

또 하나 추가하고 싶은 점은 인증서를 가져올 때 .pfx 인증서를 선택하는 것을 잊지 마세요. 가져오기 마법사의 기본 선택은 가져올 수 있는 *.cer이지만(제가 실수했습니다) IIS 서버 인증서에서 인증서를 볼 수 없었습니다. 자세히 보니 아이콘에 작은 키가 없습니다. 이제 다음을 통해 수리할 수 있다는 조사를 했습니다.KB-889651기사. 따라서 .pfx를 가져오면 복구 없이 작동하는지 확인하세요.

또 다른 참고 사항은 이 인증서에 신뢰 문제가 있는 경우 "신뢰할 수 있는 루트 인증 기관"으로도 가져오라는 것입니다.

답변1

확신하는. 그만큼makecertWindows SDK의 일부인 유틸리티를 사용하면 다음과 같은 작업을 수행할 수 있습니다.

makecert -len 2048 -r -a sha256 -sv private.pvk -n CN=localhost cert.cer

매개 -a변수는 해시 알고리즘을 설정합니다. 그러면 PVK와 DER .cer 파일이 생성됩니다. 물론 일반 이름을 원하는 대로 변경할 수도 있습니다. 예를 들어 localhost를 사용했습니다. pvk2pfx(SDK의 일부이기도 함)을 사용하여 이를 PFX(IIS가 인증서를 가져올 때 선호하는 것)로 결합할 수 있습니다 .

pvk2pfx -spc cert.cer -pvk private.pvk -pfx out.pfx

생성된 두 파일을 가져와서 makecertPKCS12 .pfx 파일로 결합합니다.

결과 PFX 파일을 사용하여 IIS를 열고 서버 인증서로 가져온 다음 새 인증서를 사용하도록 사이트 바인딩을 변경합니다.

답변2

직장에서 잠겨 있는 Windows 7 Enterprise 컴퓨터를 사용하고 있어서 Windows SDK를 설치하여 makecert. sha256 자체 서명 인증서를 생성하는 방법은 다음과 같습니다.https://core.telegram.org/bots/self-signed):

  1. 인증서를 저장할 디렉터리를 결정하세요.
  2. template.txt해당 디렉터리에 다음 내용이 포함된 텍스트 파일을 만듭니다 .

    [NewRequest]
    
    ; At least one value must be set in this section
    Subject = "CN={your.domain.com}"
    KeyLength = 2048
    KeyAlgorithm = RSA
    HashAlgorithm = sha256
    ;MachineKeySet = true
    RequestType = Cert
    UseExistingKeySet=false ;generates a new private key (for export)
    Exportable = true ;makes the private key exportable with the PFX
    
  3. {your.domain.com}사이트에 액세스하는 데 사용할 주소로 바꾸십시오 . 예:"CN=localhost"

  4. 명령 프롬프트를 열고 인증서 디렉터리로 변경하세요.
  5. 달리다certreq -new template.txt RequestFileOut
  6. 일련번호를 알아야 하므로 실행하여 certutil -store -user my일련번호가 포함된 덤프를 얻으세요.
  7. {SERIALNUMBER}덤프의 일련 번호와 {YOURDER}.crt출력 파일 이름으로 바꿉니다 .certutil -user -store -split my {SERIALNUMBER} {YOURDER}.crt
  8. {YOURDER}.crt입력 파일 이름과 {YOURPEM}.cer출력 파일 이름 으로 바꿉니다 .certutil -encode {YOURDER}.crt {YOURPEM}.cer
  9. {your.domain.com}실제(테스트) 도메인 이름과 {YOURPKCS}.pfx출력 파일 이름 으로 바꿉니다 .certutil -exportpfx -user {your.domain.com} {YOURPKCS}.pfx NoChain

그런 다음 IIS 관리자, 사이트 -> {사이트 이름} -> 바인딩...("사이트 편집" 아래)으로 이동했습니다. 그런 다음 이미 설정한 https/443을 클릭하고 편집...을 클릭하고 목록에서 새 인증서를 선택했습니다.

Firefox에서 내 사이트가 자체 서명된 인증서를 사용하고 있다고 불평했기 때문에 이를 예외로 추가했습니다. 짜잔! 효과가 있었어요!

답변3

예, "지정된 로그온 세션이 존재하지 않습니다." 오류/경고 메시지도 표시됩니다.

방금 두 번째로 확인을 클릭했는데 승인되었습니다.

관련 정보