SSLError를 던지는 Python 요청


350

CAS, jspring 보안 검사, 리디렉션 등을 포함하는 간단한 스크립트를 작성하고 있습니다. Kenneth Reitz의 python 요청은 큰 작업이므로 사용하고 싶습니다! 그러나 CAS는 SSL을 통해 유효성을 검사해야하므로 해당 단계를 먼저 거쳐야합니다. 파이썬 요청이 무엇을 원하는지 모르겠습니까? 이 SSL 인증서는 어디에 있어야합니까?

Traceback (most recent call last):
  File "./test.py", line 24, in <module>
  response = requests.get(url1, headers=headers)
  File "build/bdist.linux-x86_64/egg/requests/api.py", line 52, in get
  File "build/bdist.linux-x86_64/egg/requests/api.py", line 40, in request
  File "build/bdist.linux-x86_64/egg/requests/sessions.py", line 209, in request 
  File "build/bdist.linux-x86_64/egg/requests/models.py", line 624, in send
  File "build/bdist.linux-x86_64/egg/requests/models.py", line 300, in _build_response
  File "build/bdist.linux-x86_64/egg/requests/models.py", line 611, in send
requests.exceptions.SSLError: [Errno 1] _ssl.c:503: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

더 많은 코드 정보를 공유 할 수 있습니까? 누락 된 단계가있는 것 같습니다.
TankorSmash

5
도움이 필요한 소프트웨어 버전을 항상 언급해야합니다.
Piotr Dobrogost 2016 년

파이썬 3.5 토네이도 4.4를 사용하는 경우이 문제가 발생했습니다. HTTPRequest는 validate_cert = True를 설정하므로이를 처리하도록 False로 설정할 수 있습니다
pan7an

다음을 시도하십시오 : requests.get ( ' example.com ', verify = certifi.where ())
Nei

답변:


460

신뢰할 수없는 SSL 인증서로 인해 발생한 문제입니다.

이전 의견에서 언급 한 @dirk와 마찬가지로 가장 빠른 수정은 설정입니다 verify=False.

requests.get('https://example.com', verify=False)

이로 인해 인증서가 확인되지 않습니다. 이렇게하면 중간자 공격과 같은 보안 위험에 응용 프로그램이 노출됩니다.

물론 판단을 적용하십시오. 의견에서 언급했듯이, 이것은 빠른 / throwaway 응용 프로그램 / 스크립트에는 적합 있지만 실제로는 프로덕션 소프트웨어로 가면 안됩니다 .

특정 상황에서 인증서 검사를 건너 뛸 수없는 경우 다음 옵션을 고려하십시오. 가장 좋은 옵션은 verify매개 변수를 .pem인증서 파일의 경로 인 문자열 로 설정하는 것입니다. 방법).

따라서 버전 2.0부터 verify매개 변수는 각각의 의미와 함께 다음 값을 승인합니다.

  • True: 라이브러리 자체의 신뢰할 수있는 인증 기관에 대해 인증서의 유효성을 검사합니다 (참고 : Requests : Certifi-Trust Database for Humans 에서 추출한 RC의 트러스트 데이터베이스 인 Certifi 라이브러리를 통해 어떤 루트 인증서 요청이 사용하는지 확인할 수 있습니다 ).
  • False: 인증서 유효성 검사를 완전히 무시합니다 .
  • 요청이 인증서를 검증하는 데 사용할 CA_BUNDLE 파일의 경로입니다.

출처 : 요청-SSL 인증서 확인

또한 cert동일한 링크 의 매개 변수를 살펴보십시오 .


1
예, 우분투에서 dotCloud를 사용할 때 동일한 "인증서 확인 실패"가 나왔습니다. "/usr/local/lib/python2.6/dist-packages/dotcloud/client/client.py"에서 "requests.session (headers = headers, hooks = hooks, verify = False)"를 수정 한 후 작동했습니다.
diyism

2
이것은 올바른 것으로 표시되지 않지만 아래 답변과 반대로 작동하는지 확인할 수 있습니다.
khalid13

40
@ khalid13 : 도끼는 두통 약 (머리 없음-두통 없음)으로 작동합니다. 그런 식으로 사용하는 것이 좋은 생각은 아닙니다. verify=False호스트의 SSL 인증서 검사를 비활성화합니다.
jfs

24
@JFSebastian 솔직히, 그것은 당신이하는 일에 달려 있습니다. 나의 빠른 / 던지기 응용 프로그램의 경우 충분했습니다.
khalid13

5
이러한 변화의 소리 만들기 @diyism 매우 안전하지 않은를 ...
binki

111

SSL 확인에 대한 요청 문서에서 :

요청은 웹 브라우저와 마찬가지로 HTTPS 요청에 대한 SSL 인증서를 확인할 수 있습니다. 호스트의 SSL 인증서를 확인하려면 verify 인수를 사용할 수 있습니다.

>>> requests.get('https://kennethreitz.com', verify=True)

SSL 인증서를 확인하지 않으려면 verify=False


4
글쎄, verify = True를 추가했지만 여전히 똑같은 오류가 발생했습니다. 변경 없음. 다른 것이 필요하지만 그것이 무엇인지 모릅니다.
TedBurrows

나는 이제 SSL 광기에 빠졌다고 가정합니다. 초기 get ... get (url1, headers = headers, cert = '/ etc / pki / tls / cert.pem', verify = True, config = my_config)에 이것을 추가했습니다. 이제이 오류가 발생합니다. requests.exceptions.SSLError : [Errno 336265225] _ssl.c : 351 : error : 140B0009 : SSL 루틴 : SSL_CTX_use_PrivateKey_file : PEM lib이게 무슨 뜻인지 모르겠습니다.
TedBurrows

14
인증서의 유효성을 검사하지 않으려면 verify = False로 설정하십시오. 즉, 자체 서명 된 인증서가있는 경우
Dirk

16
자체 서명 된 인증서가있는 경우, 인증서를 다운로드하여 파일 이름으로 확인하십시오. verify = False를 설정하는 데 대한 변명은 없습니다. = 확인 '/ 경로 /에 / cert.pem'
마티아스 Urlichs

14
죄송합니다. Boud, 요청이 "웹 브라우저와 같은"HTTPS 요청을 처리하지 않으므로이 답변에 투표를해야했습니다. 전체 SSL 신뢰 체인 (중간 인증서 포함)이 서버에서 선언되지 않고 추가 인증서 다운로드가 필요한 경우 위의 SSL 확인 오류가 발생합니다. 웹 브라우저는 추가 다운로드를 수행하며 인증서 오류를 표시하지 않습니다. 이것은 웹 브라우저와 요청이 다른 한 가지 방법입니다. 다른 것도 있습니다. 요청은 일부 확인을 수행하지만 브라우저만큼 좋지 않습니다.
Louis Cremen

53

사용할 CA 파일 이름은 verify다음을 통해 전달할 수 있습니다 .

cafile = 'cacert.pem' # http://curl.haxx.se/ca/cacert.pem
r = requests.get(url, verify=cafile)

verify=True그런 다음 requests사용하는 경우 서버 인증서에 서명 한 CA가없는 자체 CA 세트 를 사용하십시오.


12
@ 9emE0iL18gxCqLT : 왜 모든 시스템이 제공 한 경로를 사용한다고 생각하십니까? requests배포 용으로 패키지 할 수 있습니다. 실행 python -mrequests.certs이 가리키는 곳을 찾을 수 있습니다.
jfs

3
Python 요청의 cacert 번들이 오래된 경우 어떻게 업데이트합니까?
CMCDragonkai

5
cacert.pem컬에서 사용해서는 안됩니다 . 취소 된 인증서가 많이 포함되어 있습니다. (사용을 요구합니다) 체크 아웃 Certifi : certifi.io
케네스 리츠

3
@KennethReitz : 1- 요청이 OP에 실패한 경우 (그렇지 않은 경우에는 질문이 없었 음) 2- cacert.pem모질라에서 추출한 CA 인증서 (cURL) -예일뿐입니다. -브라우저는 예제로 사용할 수 없으며 무엇을 할 수 있는지 모르겠습니다.)- 기본 목록이 실패하면 자신의 CA 파일을 전달할 있는 대답의 포인트 .
jfs

이 작업을 수행하고 클라이언트 인증서를 동시에 사용할 수 있습니까? 이 문제가 발생합니다.
user1156544

42

$ pip install -U requests[security]

  • Python 2.7.6 @ Ubuntu 14.04.4 LTS에서 테스트
  • MacOSX 10.9.5 @ Python 2.7.5에서 테스트 (매버릭스)

이 질문이 열렸을 때 (2012-05) 요청 버전은 0.13.1입니다. 버전 2.4.1 (2014-09) 에서 "보안"추가 기능이 사용 certifi가능한 경우 패키지를 사용하여 도입되었습니다 .

지금 (2016-09)의 주요 버전은 좋은 작품을, 2.11.1입니다 없이 verify=False . 엑스트라 requests.get(url, verify=False)가 설치된 requests[security]경우을 사용할 필요가 없습니다 .


7
pip install -U requests[security] --no-cache두 번 수정 pip install certifi==2015.04.28
Aamir Abro

@alanjds 소스 코드를 편집하지 않고 일부 SSL 인증서를 신뢰하거나 환경에서 인증서 확인을 사용하지 않도록 전역 적으로 파이썬을 구성하려면 어떻게해야합니까? 예를 들어 기존 Python 유틸리티 (예 : AWS CLI)를 다운로드했는데 해당 도구의 인증서를 신뢰하거나 인증서 유효성 검사를 무시하고 싶습니까?
Howiecamp

@Howiecamp는 다음을 통해 JF-바스 챤 대답을 갈 수있는 것 같아요 : stackoverflow.com/a/12865159/798575
alanjds

@alanjds 그러나 그의 대답은 내가 코드를 작성 중이거나 코드에 액세스한다고 가정하지 않습니까? 환경 수준에서 이것을 구현하려고합니다.
Howiecamp

3
pip install --upgrade pip다른 오류를 피하기 위해 요청 보안 패키지를 설치하기 전에 수행
Vincent Claes

40

boto3 코드를 검토하여 aws boto3을 사용할 때 동일한 문제가 발생하고 SSL 인증서 확인 실패 문제 REQUESTS_CA_BUNDLE가 설정되지 않았으므로 수동으로 설정하여 두 문제를 해결했습니다.

from boto3.session import Session
import os

# debian
os.environ['REQUESTS_CA_BUNDLE'] = os.path.join(
    '/etc/ssl/certs/',
    'ca-certificates.crt')
# centos
#   'ca-bundle.crt')

aws-cli의 경우 REQUESTS_CA_BUNDLE을 설정 ~/.bashrc하면이 문제가 해결됩니다 (aws-cli가 작동하지 않으므로 테스트되지 않음).

REQUESTS_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt # ca-bundle.crt
export REQUESTS_CA_BUNDLE

2
이것은 내 문제를 해결했습니다! Mac에서 Charles Proxy를 사용하여 HTTPS API를 JSON으로 호출하는 라이브러리를 디버깅했습니다. 지정된대로 Charless 인증서를 설치하고 키 체인에 추가했지만 Python은 계속 실패합니다. SSLError : ( "나쁜 핸드 셰이크 : 오류 ([( 'SSL 루틴', 'ssl3_get_server_certificate', '인증서 확인 실패')],) ,)이 문제를 해결하기 위해 REQUESTS_CA_BUNDLE 추가 및 내 키 체인에서 Charles 인증서를 .pem 파일로 내보내는 것에 대한 조언을 따랐습니다. 이제 작동합니다!
mallyvai

덕분에, 같은 문제는 오픈 피들러와 함께했다
user565447

@ user565447 지금 Fiddler와 함께 작동하려고합니다. REQUESTS_CA_BUNDLE을 Fiddler의 인증서 작업으로 설정해야합니까?
Howiecamp

19

의존하는 라이브러리가 requests있고로 확인 경로를 수정할 수없는 경우 (와 같이 pyvmomi) cacert.pem요청과 함께 번들 을 찾아 CA를 추가해야합니다. cacert.pem위치 를 찾는 일반적인 방법은 다음과 같습니다 .

창문

C:\>python -c "import requests; print requests.certs.where()"
c:\Python27\lib\site-packages\requests-2.8.1-py2.7.egg\requests\cacert.pem

리눅스

#  (py2.7.5,requests 2.7.0, verify not enforced)
root@host:~/# python -c "import requests; print requests.certs.where()"
/usr/lib/python2.7/dist-packages/certifi/cacert.pem

#  (py2.7.10, verify enforced)
root@host:~/# python -c "import requests; print requests.certs.where()"
/usr/local/lib/python2.7/dist-packages/requests/cacert.pem

btw. @ requests-devs, 요청과 함께 자신의 cacerts를 번들로 묶는 것은 정말 성가신 일입니다. 특히 시스템 ca 저장소를 먼저 사용하지 않는 것으로 보이며 이것은 어디에도 문서화되어 있지 않습니다.

최신 정보

라이브러리를 사용하고 ca 번들 위치를 제어 할 수없는 경우 ca 번들 위치를 호스트 전체 ca 번들로 명시 적으로 설정할 수도 있습니다.

REQUESTS_CA_BUNDLE=/etc/ssl/certs/ca-bundle.crt python -c "import requests; requests.get('https://somesite.com';)"

백 번이 : 키는 verify경로 를 수정할 수 없습니다 .
ghukill

자체 서명 된 인증서를 사용하는 경우 어떻게됩니까? 이 경우 CA는 무엇입니까?
user1114

작은 업데이트-python 3.6의 경우 print 명령
-python

15

나는 gspread를 사용하여 같은 문제에 직면하고 있으며 이러한 명령은 저에게 효과적입니다.

sudo pip uninstall -y certifi
sudo pip install certifi==2015.04.28

이것은 나를 위해 그것을했다. 감사합니다 :)
alex-mcleod

4
이로 인해 이전 버전의 certifi에서 해지되거나 신뢰할 수없는 인증서를 다시 설치할 수 있다는 단점이 있으므로 권장하지 않습니다.
dragon788

어떤 이유로 python 2.7의 초기 버전을 고수해야
한다면 certifi

15

경고를 제거하려면 아래 코드를 사용하십시오.

import urllib3

urllib3.disable_warnings()

verify=False함께 request.get또는 post방법


12

비슷한 문제를 해결하기위한 구체적인 접근 방식을 찾았습니다. 아이디어는 시스템에 저장되어 있고 다른 SSL 기반 응용 프로그램에서 사용되는 cacert 파일을 가리키고 있습니다.

데비안에서는 (다른 배포판에서 같은지 확실하지 않습니다) 인증서 파일 (.pem)이 저장되어 있습니다 /etc/ssl/certs/. 이것은 저에게 효과적입니다.

import requests
verify='/etc/ssl/certs/cacert.org.pem'
response = requests.get('https://lists.cacert.org', verify=verify)

어떤 pem파일을 선택 했는지 추측 하기 위해 URL을 찾아서 어떤 인증 기관 (CA)이 인증서를 생성했는지 확인했습니다.

편집 : 코드를 편집 할 수없는 경우 (세 번째 응용 프로그램을 실행 중이기 때문에) pem인증서를 직접 추가 /usr/local/lib/python2.7/dist-packages/requests/cacert.pem(예 : 파일 끝에 복사 ) 할 수 있습니다 .


2
파이썬에서 사용하는 CA_BUNDLE 디버깅 관련 게시물 .
chk

/usr/local/lib/python2.7/dist-packages/requests/cacert.pemOS 저장소에 대한 심볼릭 링크로 바꾸는 것은 어떻습니까?
CMCDragonkai

8

인증서를 신경 쓰지 않으면을 사용하십시오 verify=False.

import requests

url = "Write your url here"

returnResponse = requests.get(url, verify=False)

7

몇 시간의 디버깅 후에 다음 패키지를 사용 하여이 작업을 수행 할 수있었습니다.

requests[security]==2.7.0  # not 2.18.1
cryptography==1.9  # not 2.0

사용 OpenSSL 1.0.2g 1 Mar 2016

이 패키지 verify=False가 없으면 작동하지 않았습니다.

나는 이것이 누군가를 돕기를 바랍니다.


5

나는 같은 문제에 부딪쳤다. 서버에 중간 인증서를 설치하지 않은 것으로 나타났습니다 (아래 그림과 같이 인증서 하단에 추가하십시오).

https://www.digicert.com/ssl-support/pem-ssl-creation.htm

ca-certificates 패키지가 설치되어 있는지 확인하십시오.

sudo apt-get install ca-certificates

시간을 업데이트하면이 문제를 해결할 수도 있습니다.

sudo apt-get install ntpdate
sudo ntpdate -u ntp.ubuntu.com

자체 서명 된 인증서를 사용하는 경우 시스템에 수동으로 인증서를 추가해야합니다.


이것은 apt-get을 통한 설치 요청에만 적용됩니다. apt-get은 데비안 / 우분투에서 시스템 인증서를 사용하도록 수정합니다. 와 적절한 선박을 요청 자체, 큐레이터 조심스럽게 번들 CA : certifi.io
케네스 리츠

루트 CA이면 충분하지 않습니까? 왜 중간체가 필요합니까?
timmy

5

요청 호출이 코드 어딘가에 묻혀 있고 서버 인증서를 설치하지 않으려는 경우 디버그 목적으로 만 요청을 몽키 패치 할 수 있습니다.

import requests.api
import warnings


def requestspatch(method, url, **kwargs):
    kwargs['verify'] = False
    return _origcall(method, url, **kwargs)

_origcall = requests.api.request
requests.api.request = requestspatch
warnings.warn('Patched requests: SSL verification disabled!')

생산에는 절대 사용하지 마십시오!


4

내가 생각하는 파티에 너무 늦었지만 나 같은 동료 방랑자를위한 수정 사항을 붙여 넣고 싶었습니다! 그래서 다음은 Python 3.7.x에서 나를 위해 일했습니다.

터미널에 다음을 입력하십시오

pip install --upgrade certifi      # hold your breath..

스크립트 / 요청을 다시 실행하고 작동하는지 확인하십시오 (아직 수정되지 않았을 것입니다). 작동하지 않으면 터미널에서 다음 명령을 직접 실행하십시오.

open /Applications/Python\ 3.6/Install\ Certificates.command  # please replace 3.6 here with your suitable python version

3

HOURS에서이 문제를 해결했습니다.

요청을 업데이트하려고했습니다. 그런 다음 인증서를 업데이트했습니다. certifi.where ()를 확인하도록 지시했습니다 (코드는 기본적 으로이 작업을 수행합니다). 아무것도 효과가 없었습니다.

마지막으로 파이썬 버전을 python 2.7.11로 업데이트했습니다. 인증서를 확인하는 방식과 일부 호환되지 않는 Python 2.7.5를 사용했습니다. 파이썬 (및 소수의 다른 의존성)을 업데이트하면 작동하기 시작했습니다.


OpenSSL을 1.0.1보다 큰 버전으로 업데이트했다면 아마도 그 문제 일 것입니다. 다음 답변을 참조하십시오. stackoverflow.com/a/44543047/1413201
Tim Ludwinski

파이썬 2.7.9에서 2.7.10으로 가면이 문제가 해결되었습니다.
crazystick

3

이것은 @ rafael-almeida의 답변과 비슷하지만 요청 2.11 + 현재 3 가지 값이 없으며 verify실제로 4가 있음을 지적하고 싶습니다 .

  • True: 요청의 내부 신뢰할 수있는 CA에 대해 유효성을 검사합니다.
  • False: 인증서 유효성 검사를 완전히 무시합니다 . (권장하지 않음)
  • CA_BUNDLE 파일의 경로입니다. 요청은 이것을 사용하여 서버의 인증서를 확인합니다.
  • 공용 인증서 파일이 포함 된 디렉토리의 경로입니다. 요청은 이것을 사용하여 서버의 인증서를 확인합니다.

내 대답의 나머지는 # 4에 관한 것입니다. 인증서가 들어있는 디렉토리를 사용하여 유효성을 검사하는 방법은 다음과 같습니다.

필요한 공개 인증서를 확보하여 디렉토리에 배치하십시오.

엄밀히 말하면, 아마도 대역 외 방법으로 인증서를 얻는 방법을 "사용해야"하지만 브라우저를 사용하여 다운로드 할 수도 있습니다.

서버가 인증서 체인을 사용하는 경우 체인의 모든 단일 인증서를 확보하십시오.

요청 문서에 따르면 인증서가 포함 된 디렉토리는 먼저 "rehash"유틸리티 ( openssl rehash)를 사용하여 처리해야합니다 .

(이것은 openssl 1.1.1 이상이 필요하며 모든 Windows openssl 구현이 rehash를 지원 openssl rehash하지는 않습니다. 작동하지 않으면 https://github.com/ruby/openssl/blob/master 에서 rehash ruby ​​스크립트를 실행 해보십시오. 시도하지 않았지만 /sample/c_rehash.rb )

인증서 인식 요청에 문제가 있었지만 openssl x509 -outform PEM인증서를 Base64 .pem형식으로 변환하는 명령을 사용한 후 모든 것이 완벽하게 작동했습니다.

게으른 리 해싱을 수행 할 수도 있습니다.

try:
    # As long as the certificates in the certs directory are in the OS's certificate store, `verify=True` is fine.
    return requests.get(url, auth=auth, verify=True)
except requests.exceptions.SSLError:
    subprocess.run(f"openssl rehash -compat -v my_certs_dir", shell=True, check=True)
    return requests.get(url, auth=auth, verify="my_certs_dir")

2

v2.6.2 ~ v2.12.4 (ATOW)에 현재이 오류를 발생시키는 요청 모듈에 문제가 있습니다. https://github.com/kennethreitz/requests/issues/2573

이 문제에 대한 해결 방법은 다음 줄을 추가하는 것입니다. requests.packages.urllib3.util.ssl_.DEFAULT_CIPHERS = 'ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS'


FWIW에는 여전히 requests == 2.13.0이 있습니다. 위의 해결 방법으로 여전히 해결됩니다.
Tamás Szelei

1

@Rafael Almeida가 언급했듯이 신뢰할 수없는 SSL 인증서로 인해 문제가 발생합니다. 제 경우에는 서버에서 SSL 인증서를 신뢰할 수 없었습니다. 보안을 손상시키지 않고이 문제를 해결하려면 인증서를 다운로드하여 서버에 설치했습니다 (.crt 파일을 두 번 클릭 한 다음 인증서 설치 ...).


0

다른 패키지에서 요청이 호출되는 경우 옵션을 추가 할 수 없습니다. 이 경우 cacert 번들에 인증서를 추가하는 것은 간단한 방법입니다. 예를 들어 "StartCom Class 1 주 중급 서버 CA"를 추가해야했습니다.이 루트 루트 인증서를 StartComClass1.pem에 다운로드했습니다. 내 virtualenv의 이름이 caldav 인 경우 인증서를 다음과 같이 추가했습니다.

cat StartComClass1.pem >> .virtualenvs/caldav/lib/python2.7/site-packages/pip/_vendor/requests/cacert.pem
cat temp/StartComClass1.pem >> .virtualenvs/caldav/lib/python2.7/site-packages/requests/cacert.pem

그 중 하나는 충분할 수 있습니다, 나는 확인하지 않았다


0

비슷한 인증 유효성 검사 문제가 발생했습니다. 요청이 때로는 강력한 인증서를 확인하는 데 문제가있는 1.0.2 미만의 OpenSSL 버전을 읽었습니다 ( 여기 참조 ). CentOS 7은 1.0.1e를 사용하는 것으로 보이며 문제가있는 것 같습니다.

CentOS에서이 문제를 해결하는 방법을 잘 모르겠으므로 약한 1024 비트 CA 인증서를 허용하기로 결정했습니다.

import certifi # This should be already installed as a dependency of 'requests'
requests.get("https://example.com", verify=certifi.old_where())

ArcGIS에서 설치 한 Python 2.7.10을 사용하고 인증 모듈이 설치되어 있지 않습니다. 설치된 요청 모듈은 2.11.1 버전입니다.
Lucas

0

파이썬 3.4.0에서 3.4.6으로 업그레이드해야했습니다.

pyenv virtualenv 3.4.6 myvenv
pyenv activate myvenv
pip install -r requirements.txt

0

제 경우에는 그 이유가 아주 사소했습니다.

SSL 확인이 며칠 전까지 작동했으며 실제로 다른 시스템에서 작업하고 있음을 알고있었습니다.

다음 단계는 인증이 작동하는 시스템과 작동하지 않는 시스템의 인증서 내용과 크기를 비교하는 것이 었습니다.

이로 인해 '정확하지 않은'작업 기계의 인증서가 좋지 않다고 판단하고 일단 '좋은'인증서로 교체하면 모든 것이 정상이었습니다.

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