Python 2.7.9가 FreeBSD의 올바른 위치에서 SSL 인증서를 찾지 않으면 어떻게 해야 합니까?

Python 2.7.9가 FreeBSD의 올바른 위치에서 SSL 인증서를 찾지 않으면 어떻게 해야 합니까?

저는 FreeBSD 10.0 시스템을 가지고 있으며 며칠 전에 python27포트를 Python 2.7.8에서 Python 2.7.9로 업그레이드했습니다. Python 2.7.9는 기본적으로 SSL 확인이 활성화되어 있습니다. 당연히 자체 서명된 인증서를 사용하여 서버에 연결하는 기존 Python 스크립트가 손상되었습니다. 놀랍게도 유효한 SSL 인증서를 사용하여 서버에 연결하는 스크립트가 중단되었습니다.

나는 /usr/local/etc/ssl/cert.pem(에 대한 심볼릭 링크 /usr/local/share/certs/ca-root-nss.crt)을 가지고 있지만 은 없습니다 /etc/ssl/cert.pem. 내 Python 설치에는 후자가 필요합니다.

>>> ssl.get_default_verify_paths()
DefaultVerifyPaths(cafile=None,
                   capath=None,
                   openssl_cafile_env='SSL_CERT_FILE',
                   openssl_cafile='/etc/ssl/cert.pem',
                   openssl_capath_env='SSL_CERT_DIR',
                   openssl_capath='/etc/ssl/certs')

적절한 심볼릭 링크를 생성하여 이 문제를 해결했지만 더 좋은 방법이 있습니까? 이것이 필요한가요, 아니면 포트 자체가 이 문제를 해결해야 합니까?

( SSL_CERT_FILE내 환경에 설정할 수도 있지만 항상 그렇게 할 필요는 없습니다.)

답변1

해당 FreeBSD 오류는 다음과 같습니다.여기. 수정 사항은 기호 링크를 추가합니다.

ln -sf /usr/local/etc/ssl/cert.pem /etc/ssl/cert.pem
ln -sf /usr/local/etc/ssl/cert.pem /usr/local/openssl/cert.pem

답변2

나는 ca_root_nss그것을 제공했지만 /usr/local/etc/ssl/cert.pemPython /etc/ssl/cert.pem2.7.9에서는 필요하지 않습니다. 그래서 결국 두 번째를 첫 번째에 연결하게 되었습니다. 이 오류에 대한 참조를 찾을 수 없습니다.https://bugs.freebsd.org/bugzilla/.

관련 정보