4

SSLまたはTLSソケットを介してサーバーに接続するPython2.7スクリプトを作成しようとしています。サーバーが存在し、その証明書などを提供できます。

私は次のコードを見つけました:

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
ssl_sock = ssl.wrap_socket(s,
                       ca_certs="/etc/ca_certs_file",
                       cert_reqs=ssl.CERT_REQUIRED)
ssl_sock.connect((serverName, portNumber))

ca_certs引数が何であるかわかりません。これは現在私のコンピューターに存在するファイルであると思われますか?はいの場合、それがどこにあるかをどうやって知ることができますか?Linuxコンピューター(debianを使用したraspberry pi)を調べたところ、/ etc / ssl/certディレクトリに多数の.pemファイルが見つかりました。ca_certs引数をそれらの1つに設定する必要がありますか?はいの場合、どちらを選択しますか?いいえの場合、何に設定すればよいですか?

4

1 に答える 1

5

証明書ファイルは、OSにすでに存在しているはずのファイルであり、OSによって信頼されているルート(および/または中間?それについてはよくわかりません)証明書の連結リストが含まれていることがわかります。rasperry pi debianの私の場合、それは/etc/ssl/certificates/ca-certificates.crtです。

信頼したい証明書がある場合は、Linuxコマンドupdate-ca-certificatesを使用してこのファイルに追加することができます。これにより、ファイル/etc/ca-certificateds.confが読み取られます。このファイルには、信頼する証明書のリストが含まれている必要があります。(デフォルトでは、/ usr / share / ca-certificatesでそれらの証明書を検索しようとします)

于 2012-08-21T08:15:30.553 に答える