-
Notifications
You must be signed in to change notification settings - Fork 3
Description
The documentation describes how the modules fit together, but not always the required contents to get this to work.
Can we have an example of the creation of a signing request and then a sign so it's easier to work with.
For example I have:
import cfssl.cfssl as cfssl
import cfssl.models as CModel
<redact other class methods>
def cfssl_connect(self, certdir):
common_name = self.config.environment + self.domain
ssl = cfssl.CFSSL(self.pki_server, self.pki_port, verify_cert=False)
key = CModel.config_key.ConfigKey(algorithm='rsa',
strength=self.openssl_bits)
host = CModel.host.Host(self.config.environment, common_name)
certinfo = CModel.subject_info.SubjectInfo(a,
b,
c,
d,
e)
certfiles = ssl.new_key((host,), (certinfo,),
common_name=common_name,
key=key)
csr = certfiles["certificate_request"]
key = certfiles["private_key"]
try:
print self.pki_key
print ssl.auth_sign(self.pki_key, csr)
except Exception as e:
print str(e)
So I'm creating the appropriate objects, getting the CSR and key back and then when I try to do an auth_sign I get:
illegal base64 data at input byte 0 (400)
However if I try to base64 encode the cert using base64.b64encode() I get:
Unable to parse authenticated sign request (400)
The only reason I've managed to get as far as I have is because I've read the source code. Some help with the above would be great but posting an actual example would be a great move IMO as the documentation just describes methods and not how to use it.
Thanks.
PS: I'm happy to write an example if I can get the above working.