개발 환경의 경우 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
확신하는. 그만큼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를 열고 서버 인증서로 가져온 다음 새 인증서를 사용하도록 사이트 바인딩을 변경합니다.
답변2
직장에서 잠겨 있는 Windows 7 Enterprise 컴퓨터를 사용하고 있어서 Windows SDK를 설치하여 makecert
. sha256 자체 서명 인증서를 생성하는 방법은 다음과 같습니다.https://core.telegram.org/bots/self-signed):
- 인증서를 저장할 디렉터리를 결정하세요.
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
{your.domain.com}
사이트에 액세스하는 데 사용할 주소로 바꾸십시오 . 예:"CN=localhost"
- 명령 프롬프트를 열고 인증서 디렉터리로 변경하세요.
- 달리다
certreq -new template.txt RequestFileOut
- 일련번호를 알아야 하므로 실행하여
certutil -store -user my
일련번호가 포함된 덤프를 얻으세요. {SERIALNUMBER}
덤프의 일련 번호와{YOURDER}.crt
출력 파일 이름으로 바꿉니다 .certutil -user -store -split my {SERIALNUMBER} {YOURDER}.crt
{YOURDER}.crt
입력 파일 이름과{YOURPEM}.cer
출력 파일 이름 으로 바꿉니다 .certutil -encode {YOURDER}.crt {YOURPEM}.cer
{your.domain.com}
실제(테스트) 도메인 이름과{YOURPKCS}.pfx
출력 파일 이름 으로 바꿉니다 .certutil -exportpfx -user {your.domain.com} {YOURPKCS}.pfx NoChain
그런 다음 IIS 관리자, 사이트 -> {사이트 이름} -> 바인딩...("사이트 편집" 아래)으로 이동했습니다. 그런 다음 이미 설정한 https/443을 클릭하고 편집...을 클릭하고 목록에서 새 인증서를 선택했습니다.
Firefox에서 내 사이트가 자체 서명된 인증서를 사용하고 있다고 불평했기 때문에 이를 예외로 추가했습니다. 짜잔! 효과가 있었어요!
답변3
예, "지정된 로그온 세션이 존재하지 않습니다." 오류/경고 메시지도 표시됩니다.
방금 두 번째로 확인을 클릭했는데 승인되었습니다.