대부분의 컴퓨터는 아니지만 일부 컴퓨터에서 웹 서버의 SSL 인증서를 거부하고 있습니다. 문제는 일부 컴퓨터가 CA 인증서를 거부하는 것 같습니다. 문제가 완전히 업데이트되지 않은 경우 Mac OS X 10.6에서 문제가 발생하는 것 같습니다.
http://www.sslshopper.com/index.php?q=ssl-checker.html#hostname=beta.asana.com 에 따르면 아무런 문제가 없습니다.
http://certlogik.com/sslchecker/ 에 따르면 중간 인증서는 전송되지 않습니다.
내 인증서는 Starfield Technologies에서 sf_bundle.crt
왔으며 certs.godaddy.com/anonymous/repository.seam에서 사용 하고 있습니다.
다음과 같이 stunnel을 통해 서버에서 SSL을 처리하고 있습니다 stunnel.conf
.
cert = $CODEZ/admin/production/proxy/asana.pem
CAfile = $CODEZ/admin/production/proxy/sf_bundle.crt
pid =
client = no
[<forwarded port>]
accept = 443
connect = 8443
내가 뭘 잘못 할 수있는 아이디어가 있습니까?
답변
이 CAFile
옵션은 클라이언트 인증 인증서에 사용할 CA를 구성합니다. 이것은 당신이 원하는 것이 아닙니다.
대신, cert
적용 가능한 전체 인증서 체인을 포함하도록 옵션 에서 파일을 작성하려고합니다 . 해당 파일의 백업 사본을 저장 한 다음 새로 작성하십시오. 기본적으로 다음과 같은 형식의 두 파일을 결합합니다.
-----BEGIN CERTIFICATE-----
(certificate from asana.pem file pasted here)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(intermediate certificate here; copy-paste the top chunk from the bundle)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(root certificate here; copy-paste the bottom chunk from the bundle)
-----END CERTIFICATE-----
이렇게하면 stunnel이 전체 인증서 체인을 클라이언트에 제공합니다.
한 가지 더 좋은 음식; 이 openssl s_client
명령은 인증서 체인 문제를 테스트하고 서비스가 인증서를 제공하는 방법을 확인하는 데 매우 유용합니다.
편집 : Ok .. 인증서 번들의 체인은 3 깊지 만 신뢰 체인은 2 깊습니다. 뭔가 잘못 됐어
최상위 인증서 ( “Starfield Secure Certification Authority”)는 “.”로 시작하는 지문이있는 “Starfield Class 2 인증 기관”이라는 발행자가 서명합니다 ad7e1c28
. 그러나 번들의 두 번째 인증서는 첫 번째 인증서의 서명자와 정확히 동일합니다. 정확히 동일한 인증서 여야하고 으로 시작하는 지문이 363e4734
있고 만료 날짜가 10 년 전 이어야 합니다 . 그런 다음 세 번째 (루트) 인증서는 포함 된 중간 인증서의 서명자입니다. 그러나이 두 인증서는 첫 번째 인증서와 관련이 없습니다!
그것이 이해가되지 않는다면 걱정하지 마십시오. 요약 : 조잡한 작업으로 누군가 가이 인증서 번들을 구축하는 공을 떨어 뜨 렸습니다. 가장 좋은 방법은 체인을 성공적으로 확인하는 브라우저에서 base-64 형식으로 파일을 내보내고 거기에 나열된 형식으로 붙여 넣는 것입니다.
그것이 당신 자신의 잘못이 아닌 혼란스러운 혼란이기 때문에, 나는 당신의 DNS 이름을 추측하고 인증서를 얻었고, 이것이 당신이 필요한 전체 체인이어야한다고 생각합니다 : http://pastebin.com/Lnr3WHc8
답변
Qualys SSLLabs는 변경 후 구성을 확인하는 데 정말 편리합니다.
https://www.ssllabs.com/ssldb/analyze.html
가지고 있는지 확인
- 강력한 암호 사용
- 약한 암호 비활성화
- 인증서 체인이 완전하고 올바른 순서로
답변
이 문제에 직면 한 다른 사람을 위해 Shane의 게시물이 트릭을 수행했지만 CAFile도 포함시켜야했습니다. 또한 체인을 만들 때이 기사에 따라 파일 이름 지정 지침을 따르십시오
사용해야하는 파일 이름을 결정하기 위해 OpenSSL과 함께 제공되는 c_hash 프로그램을 사용할 수 있습니다 (
/usr/local/ssl/misc
디렉토리에서).
c_hash some_certificate.pem
a4644b49.0 => some_certificate.pem
따라서 위의 경우 파일 이름을로 바꿉니다
a4644b49.0
.
파일 이름의 점 다음에 문자 ‘O’가 아닌 0입니다.
c_hash
프로그램 이없는 경우 적절한 OpenSSL 명령을 실행하여 해시 값을 결정할 수 있습니다.
openssl x509 -hash -noout -in some_certificate.pem
a4644b49
그리고이 문제에 직면하고 있다면 안드로이드 코르도바와 함께 웹 소켓을 사용하려는 경우 *는 http와 https 만 포함하므로 cordova-whitelist 항목에 수동으로 wss를 추가하십시오.