私はこの簡単なコードを実行してSSL証明書を取得しようとしています:
import ssl, socket
#print ssl.get_server_certificate(('www.google.com', 443))
cert=ssl.get_server_certificate(('www.google.com', 443))
# OpenSSL
x509 = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_PEM, cert)
x509.get_subject().get_components()
しかし、次のようなエラーが表示されます。
Traceback (most recent call last):
File "C:\Users\e\Desktop\Python\ssl\test.py", line 6, in <module>
x509 = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_PEM, cert)
NameError: name 'OpenSSL' is not defined
OpenSSLをインポートする必要があることを認識しています。しかしどうしたら良いかわからない? OpenSSLはどこから入手できますか? pyOpenSSLというモジュールを https://pypi.python.org/pypi/pyOpenSSL からダウンロードしました。これには、pyOpenSSL-0.15.1.dist-infoとOpenSSLの2つのフォルダーが含まれています。インポートOpenSSLまたはインポートpyOpenSSLを追加しようとすると、エラーが発生します。これらのライブラリまたはモジュールをインポートする方法を明確に説明していただけますか?それらはどこに配置する必要がありますか?コードファイルの同じディレクトリにない場合インポート構文にパスを書く方法は??助けてください。
EDIT:コードにfrom OpenSSL import SSL
を追加しようとすると、
C:\Users\e\Desktop\Python\ssl>test.py
Traceback (most recent call last):
File "C:\Users\e\Desktop\Python\ssl\test.py", line 2, in <module>
from OpenSSL import SSL
File "C:\Users\e\Desktop\Python\ssl\OpenSSL\__init__.py", line 8, in <module>
from OpenSSL import Rand, crypto, SSL
File "C:\Users\e\Desktop\Python\ssl\OpenSSL\Rand.py", line 9, in <module>
from six import integer_types as _integer_types
ImportError: No module named six
tests から:
from OpenSSL import SSL
編集への応答:pip install pyopenssl
は6つインストールされているはずです。自分でインストールしようとしている場合、私はこれを行いませんが、pip install six cryptography
を使用して依存関係を手動でインストールでき、インポートは正常に機能するはずです。そうでない場合は、コメントを残し、さらに調査を行います。
コメントへの応答: windowsへのpipのインストール に関する指示があります。