Qiitaにて、SSL証明書を取得するコードについて、調べていたのですが、分からない箇所があり質問させて貰いました。
import socket import ssl import OpenSSL def get_server_certificate(hostname): context = ssl.create_default_context() with socket.create_connection((hostname, 443)) as sock: with context.wrap_socket(sock, server_hostname=hostname) as sslsock: der_cert = sslsock.getpeercert(True) return ssl.DER_cert_to_PEM_cert(der_cert) cert = get_server_certificate('www.google.com') x509 = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_PEM, cert)
該当の箇所は以下の部分です。
with context.wrap_socket(sock, server_hostname=hostname) as sslsock:
公式リファレンスを参照していると、以下のような記述があります。
既存の Python ソケット sock をラップして ssl.SSLSocket オブジェクトを返します。
こちらに、「ラップ」とあるのですが、これはどのような処理なのでしょうか。
必要なステップである為、この部分を行っているのだと思うのですが、「ラップ」というのがどういうことを意味しているのかが分かりませんでした。
ここの部分について、ご助言頂けましたら幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/14 10:15 編集