subversion / openssl에 의해 서버 인증서의 유효성이 올바르게 검사되지 않습니다


2

svn cli가 https 인증서의 유효성을 검사하지 못하고 항상 인증서 지문을 사용하여 수동 유효성 검사를 요청하는 것으로 나타났습니다.

mbp:~ user$ svn co https://svn.mysite.com/svn/testrepo
Error validating server certificate for 'https://svn.mysite.com:443':
 - The certificate is not issued by a trusted authority. Use the
   fingerprint to validate the certificate manually!
Certificate information:
 - Hostname: svn.mysite.com
 - Valid: from Fri, 21 Jun 2013 00:00:00 GMT until Mon, 20 Jun 2016 23:59:59 GMT
 - Issuer: ANISSUER, DE
 - Fingerprint: 37:7d:6a:a7:e9:4c:30:57:fe:45:32:ab:bb:71:6c:79:08:4d:72:0d

다음의 모든 클라이언트는 내 자신의 svn 서버 및 sf.net 서버 의 인증서를 확인할 수있었습니다 .

  • Linux의 svn cli
  • Windows의 TortoiseSVN
  • OSX의 Safari / Firefox / Chrome

OSX (Mountain Lion)에서 시도했지만 인증서의 유효성을 검사하지 못한 두 가지 svn cli 버전은 다음과 같습니다.

  • /usr/bin/svn: 1.6.18 (r1303927)-Mountain Lion / Xcode
  • /opt/homebrew/bin/svn: 1.7.9 (r1462340) - 사용하여 컴파일 된 사제를

이 문제를 해결할 방법이 있습니까?


내 생각에 문제의 원인은 svn cli가 운영 체제에서 신뢰할 수있는 루트 인증서를 선택할 수 없기 때문입니다. 이것들은 /etc/ssl/certs데비안에 저장되어 있지만 OSX에서의 위치는 모릅니다.
m000

답변:


2

친구 (여기서 답변을 작성하기에 너무 게으른 사람)는 Mac OSX의 루트 인증서가 키 체인에 저장되어 있으며 문제와 관련 하여 두 가지 다른 방법을 제안했다고 나에게 암시했습니다 .

svn에서 사용하는 openssl 라이브러리를 찾으려면 수동으로 내보내고에 저장해야합니다 /System/Library/OpenSSL/cert.pm. 프로세스는 다음 블로그 게시물에 단계별로 설명되어 있습니다. http://jw35.blogspot.gr/2011/02/root-certificates-for-macos-openssl.html

homebrew 를 사용 하는 경우 대체 솔루션은 curl-ca-bundle패키지 를 설치 하고 openssl이 환경 변수를 사용하여 인증서의 위치를 ​​가리 키도록하는 것입니다.

brew install curl-ca-bundle
echo "export SSL_CERT_FILE=$(brew --prefix)/opt/curl-ca-bundle/share/ca-bundle.crt" >> ~/.bashrc

1
이것은 나를 위해 일했지만 PEM 파일을 넣을 /System/Library/OpenSSL/cert.pm뿐만 아니라 [hash].0동일한 데이터가 들어 있는 파일을 만들어야합니다 (또는 더 나은 심볼 링크를 만들어야 함). 은 [hash]실행에 의해 얻을 수있는 인증서의 해시입니다 openssl x509 -hash -noout -in /System/Library/OpenSSL/cert.pem. 심볼릭 링크 파일 이름에 사용할 수있는 8 자리 코드를 제공해야합니다 (예 : 최종 파일 이름을 만들기 위해 해시에 추가 238dba32.0되는 위치 .0).
Christopher Schultz
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.