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


8

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

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

그래서 내 질문은 :

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

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

최신 정보

@vcsjones 답변을 사용하여 끝났지 만 지금까지만 가능합니다. 거기서 우리는 문제를 해결하기 전에 해결해야 할 몇 가지 문제를 해결했습니다.

1) 어떤 이유로 비밀번호로 인증서를 가져올 수 없습니다. 그래서 나는 그것을하지 않고 그것을 만들었습니다.

2) IIS를 통해 .pfx 인증서를 가져올 때 바인딩 편집에서 새 인증서를 적용하려고 할 때 "지정된 로그온 세션이 없습니다"라는 메시지가 계속 나타납니다. 그래서 나는 거의 연구를하지 않았고이 SO 답변 이 유용하다는 것을 알았습니다 . 특히 Mike L의 답변입니다.

내가 추가 할 또 다른 것은 인증서를 가져올 때 .pfx 인증서를 선택해야한다는 것입니다. 가져 오기 마법사의 기본 선택 항목은 * .cer이며 가져올 수 있지만 실수로 IIS 서버 인증서에서 인증서를 볼 수 없습니다. 자세히 보았을 때 아이콘에 작은 키가 없었습니다. 이제 KB-889651 기사 를 통해 수리 할 수 ​​있다는 연구를했습니다 . 따라서 .pfx를 가져 오면 복구하지 않고 작동합니다.

또 다른 참고로,이 인증서에 신뢰 문제가있는 경우 "신뢰할 수있는 루트 인증 기관"으로 가져 오십시오.

답변:


8

확실한. makecert그렇게 할 수있는 Windows 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

makecert생성 된 두 파일 만 PKCS12 .pfx 파일로 결합합니다.

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


나는 그것을 만들었지 만 cert.cer와 out.pfx는 어디에서 찾을 수 있습니까?
peter

1
@ peter 콘솔의 작업 디렉토리가 무엇이든간에. C:\Path\ToADirectory>명령 프롬프트 와 같은 내용이 표시 됩니다. 그것이 당신의 작업 디렉토리입니다.
vcsjones

내가 iis에서 .pfx를 가져 오려고 할 때 암호를 물었습니다. 귀하의 의견을 사용하여 certicate를 만드는 동안 설정 한 암호를 입력했지만 실패한 이유는 무엇입니까?
peter

vcsjones 시스템에 인증서를 설치 한 다음 IIS에서 binind를 설정했습니다. 파이어 폭스에서 탐색 할 때 열리지 않지만 IE에서는 오류 메시지가 계속 표시되고 웹 사이트를 볼 수는 있지만 인증서와 같은 아이콘은 신뢰할 수 없습니다. 인증 기관
peter

1
주목할 점은 이제 makecert가 더 이상 사용되지 않는다는 것입니다. Windows 8.1 / Windows Server 2012 R2 이상에서는 대신 다음에 설명 된 Powershell 명령을 사용할 수 있습니다. stackoverflow.com/a/19446469/914490
Mike

6

직장에서 잠긴 Windows 7 Enterprise 컴퓨터를 사용 중이므로 Windows SDK를 설치하여에 액세스 할 수 없습니다 makecert. https://core.telegram.org/bots/self-signed 에서 가져온 sha256 자체 서명 인증서를 작성하는 방법은 다음과 같습니다 .

  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에서 내 사이트가 자체 서명 된 인증서를 사용하고 있다고 불평하여 예외로 추가 한 것입니다. 효과가 있었다!


이것은 prod 서버에서는 불가능한 설치가없는 가장 효과적인 예입니다.
hungryMind

이 작업을 Windows 7 상자에서 작동시킬 수는 없었지만 서버 2012에서는 훌륭하게 작동했습니다. 참고로 {yourpem} .cer 및 {yourpkcs.pfx}는 나열된 두 명령에 의해 생성됩니다. {yourder} .crt와 같은 이름을 사용하고 싶을 것입니다. 따라서 간단하게하기 위해 {yourcert} .crt, {yourcert} .cer, {yourcert} .pfx
DaBlue

0

예, "지정된 로그온 세션이 없습니다"오류 / 경고 메시지도 있습니다.

방금 확인을 두 번 클릭하여 수락했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.