Python 経由で Azure にリクエストを送信して、使用しているストレージ サービスを一覧表示しようとしています。
私の基本コードはこれです:
import httplib
conn = httplib.HTTPSConnection('management.core.windows.net')
conn.request('GET', '/[subscription id]/services/storageservices/')
response = conn.getresponse()
print response.status response.reason
明らかに、私は認証しなかったため、これが出力されました403 Forbidden
そこで、http://msdn.microsoft.com/en-us/library/windowsazure/gg651127の指示に従って証明書を作成し、cert.cer
. を Azure アカウントにアップロードし、 Python を使用している Linux VM に.cer
コピーしました。.cer
コードを次のように変更しました。
import httplib
cert_file = '/path/to/cert.cer'
conn = httplib.HTTPSConnection('management.core.windows.net', cert_file = cert_file)
conn.request('GET', '/[subscription id]/services/storageservices/')
エラーが発生しました:
ssl.SSLError: [Errno 336265225] _ssl.c:351: error:140B0009:SSL routines:SSL_CTX_use_PrivateKey_file:PEM lib
.cer
.pem と.cerの違いについてここで述べられていること.pem
に基づいて(拡張子が異なる同じものである)、. .cer の拡張子を .pem に変更して再試行したところ、同じエラーが発生しました。
API にアクセスするために Azure に対して自分自身を適切に認証するにはどうすればよいですか? これは、証明書をアップロードする方法に問題がありますか?それとも、証明書をサーバーに提示するのに適したものにするために何かをする必要がありますか? Windowsでは、.cer
ある種の証明書ストアにインストールできるようです-Linuxには、認証に使用する前に証明書を取得する必要がある同等のものがありますか? 助けてくれてありがとう =)