私はPythonリクエストパッケージをSSL経由で接続しようとしましたが、私は以下のコードを使用しました。Python 2.7.13リクエストを使用したssl接続
resp = requests.get(addr , auth=HttpNtlmAuth(userFile[unum],passFile[pnum]) , headers = {'User-Agent':'Mozilla/4.01 (compatible; MSIE 6.0; Windows NT 5.1)'} , verify = False)
ただし、以下のエラーが発生するたびに発生します。
("bad handshake: SysCallError(-1, 'Unexpected EOF')",)
UPDATE 1:
私は、ホスト証明書をダンプし、c.certとコードの下で使用することを保存します。
resp = requests.get(addr , auth=HttpNtlmAuth(userFile[unum],passFile[pnum]) , headers = {'User-Agent':'Mozilla/4.01 (compatible; MSIE 6.0; Windows NT 5.1)'} , cert = '/home/user/Desktop/c.cert' , verify = '/home/user/Desktop/c.cert')
と新しいエラーです。
[('PEM routines', 'PEM_read_bio', 'no start line'), ('SSL routines', 'SSL_CTX_use_PrivateKey_file', 'PEM lib')]
UPDATE 2:
ここでは、げっぷSuiteは捕獲するものです。
(まず、セッションの作成):
GET /PATH HTTP/1.1
Host: HOST
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Cookie: ASPSESSIONIDCQCTCTCQ=EPEHGDDAKOINODAJJKCELEOK
DNT: 1
Connection: close
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0
(第二に、使用時の資格情報):
GET /PATH HTTP/1.1
Host: HOST
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Cookie: ASPSESSIONIDCQCTCTCQ=EPEHGDDAKOINODAJJKCELEOK
DNT: 1
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0
Authorization: NTLM TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=
Connection: close
(第三に、資格情報が間違っていた)
GET /PATH HTTP/1.1
Host: HOST
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Cookie: ASPSESSIONIDCQCTCTCQ=EPEHGDDAKOINODAJJKCELEOK
DNT: 1
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0
Authorization: NTLM TlRMTVNTUAADAAAAGAAYAGAAAACIAIgAeAAAAAAAAABAAAAACgAKAEAAAAAWABYASgAAAAAAAAAAAAAABYIIAGEAZABtAGkAbgBXAE8AUgBLAFMAVABBAFQASQBPAE4Ao8+kG6lMZcLmQys5IUkpayq+W1VFZPkjUQjxBhzugt88vU6RR3wahQEBAAAAAAAAgPonWPz30gGr58MfeUgvgQAAAAACABIAVwBFAEIAUwBFAFIAVgBFAFIAAQASAFcARQBCAFMARQBSAFYARQBSAAQAEgBXAEUAQgBTAEUAUgBWAEUAUgADABIAVwBFAEIAUwBFAFIAVgBFAFIAAAAAAA==
Connection: close
URLを使用してHTTPSを使用しないと、カスタムエラー以下のページが表示されます
不正リクエスト(無効なホスト名)
サーバーは接続を閉じました。これには、クライアント証明書が見つからない、互換性のない暗号またはTLSプロトコルのバージョンなど、多くの理由があります。ブラウザのような別のクライアントを使用する場合は接続が正しく行われていることを確認し、ブラウザに必要な情報(クライアント証明書など)をスクリプトに提供していることを確認してください。最近のバージョンのOpenSSLを使用していることを確認してください。これはTLS 1.2のみをサポートしているため、1.0.1以上です。これについてssl.OPENSSL_VERSIONを確認してください。 –
opensslはすでに最新バージョン(1.1.0f-3)です。私がブラウザを使って接続すると、それは動作します – saodark
そして、私は、ブラウザとサーバの間の接続が成功したことと、pythonクライアントとサーバの間の接続に失敗したパケットの両方をキャプチャし、これらを比較することを推奨します。プロトコルバージョン。分析に助けが必要な場合は、キャプチャをcloudshark.orgにアップロードすることができます。 –