def enroll(self, enrollment_id, enrollment_secret, csr):
"""Enroll a registered user in order to receive a signed X509 certificate
Args:
enrollment_id (str): The registered ID to use for enrollment
enrollment_secret (str): The secret associated with the
enrollment ID
csr (bytes or file-like object): PEM-encoded PKCS#10 certificate
signing request
Returns: PEM-encoded X509 certificate
Raises:
RequestException: errors in requests.exceptions
ValueError: Failed response, json parse error, args missing
"""
if not enrollment_id or not enrollment_secret or not csr:
raise ValueError("Missing required parameters. "
"'enrollmentID', 'enrollmentSecret' and 'csr'"
" are all required.")
if self._ca_name != "":
req = {
"caName": self._ca_name,
"certificate_request": csr
}
else:
req = {"certificate_request": csr}
response = self._send_ca_post(path="enroll", json=req,
auth=(enrollment_id, enrollment_secret),
verify=self._ca_certs_path)
_logger.debug("Raw response json {0}".format(response))
if response['success']:
return base64.b64decode(response['result']['Cert'])
else:
raise ValueError("Enrollment failed with errors {0}"
.format(response['errors']))
评论列表
文章目录