Python中的Azure服务管理-ssl.SSLError:[ssl]PEM lib(_ssl.c:2084)

Python中的Azure服务管理-ssl.SSLError:[ssl]PEM lib(_ssl.c:2084),python,azure,ssl,python-3.x,Python,Azure,Ssl,Python 3.x,我已经创建了一个.cer文件并将其上载到Azure管理面板。我使用Administrator:Command-Prompt创建了这个 makecert -sky exchange -r -n "CN=AzureCertificate" -pe -a sha1 -len 2048 -ss My "AzureCertificate.cer" 这是我的代码: from azure import * from azure.servicemanagement import * subscription

我已经创建了一个.cer文件并将其上载到Azure管理面板。我使用Administrator:Command-Prompt创建了这个

makecert -sky exchange -r -n "CN=AzureCertificate" -pe -a sha1 -len 2048 -ss My "AzureCertificate.cer"
这是我的代码:

from azure import *
from azure.servicemanagement import *

subscription_id = '<MY SUBSCRIPTION ID>'
cert_path = r'C:\AzureCertificate.cer'

sms = ServiceManagementService(subscription_id,cert_path)

result = sms.list_locations()
从azure导入*
从azure.servicemanagement导入*
订阅\u id=“”
证书路径=r'C:\AzureCertificate.cer'
sms=服务管理服务(订阅id、证书路径)
结果=sms.list_位置()
这是我得到的错误:

Traceback (most recent call last):
  File "<pyshell#37>", line 1, in <module>
    result = sms.list_locations()
  File "C:\Python33\lib\site-packages\azure-0.8.1-py3.3.egg\azure\servicemanagement\servicemanagementservice.py", line 939, in list_locations
    Locations)
  File "C:\Python33\lib\site-packages\azure-0.8.1-py3.3.egg\azure\servicemanagement\servicemanagementclient.py", line 108, in _perform_get
    response = self._perform_request(request)
  File "C:\Python33\lib\site-packages\azure-0.8.1-py3.3.egg\azure\servicemanagement\servicemanagementclient.py", line 95, in _perform_request
    resp = self._filter(request)
  File "C:\Python33\lib\site-packages\azure-0.8.1-py3.3.egg\azure\http\httpclient.py", line 182, in perform_request
    connection = self.get_connection(request)
  File "C:\Python33\lib\site-packages\azure-0.8.1-py3.3.egg\azure\http\httpclient.py", line 143, in get_connection
    host, int(port), cert_file=self.cert_file)
  File "C:\Python33\lib\http\client.py", line 1186, in __init__
    context.load_cert_chain(cert_file, key_file)
ssl.SSLError: [SSL] PEM lib (_ssl.c:2063)
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
结果=sms.list_位置()
文件“C:\Python33\lib\site packages\azure-0.8.1-py3.3.egg\azure\servicemanagement\servicemanagementservice.py”,第939行,位于列表位置
地点)
文件“C:\Python33\lib\site packages\azure-0.8.1-py3.3.egg\azure\servicemanagement\servicemanagementclient.py”,第108行,在
响应=自我执行请求(请求)
文件“C:\Python33\lib\site packages\azure-0.8.1-py3.3.egg\azure\servicemanagement\servicemanagementclient.py”,第95行,在执行请求中
resp=自过滤器(请求)
文件“C:\Python33\lib\site packages\azure-0.8.1-py3.3.egg\azure\http\httpclient.py”,第182行,在执行请求中
连接=self.get\u连接(请求)
文件“C:\Python33\lib\site packages\azure-0.8.1-py3.3.egg\azure\http\httpclient.py”,第143行,在get\u连接中
主机,int(端口),证书文件=self.cert\u文件)
文件“C:\Python33\lib\http\client.py”,第1186行,在\uuu init中__
加载证书链(证书文件、密钥文件)
ssl.SSLError:[ssl]PEM lib(_ssl.c:2063)

是否有人能够诊断此错误,我在网上没有找到太多帮助。

您需要设置此错误的证书路径:
cert\u path='CURRENT\u USER\\my\\AzureCertificate'


Windows现在支持上述链接中“Mac/Linux上的管理证书”部分所述的打开SSL证书。它检测是否应该使用httplib或winhttp的方法是通过cert_路径。如果它是文件的路径,则将使用httplib(开放ssl证书)。如果不是,它将使用winhttp。

我认为这是一个Python错误,而不是逐渐出现的OpenSSL错误。OpenSSL没有
ssl.c
文件。