Here cert_id is the id That I send to the user, he will download the certificate with something like: URL/cert_id.cert.pem, then I generate the csr with two UUID.
When signing from command line, we need to know those two uuid, the csr is key.csr.pem with key=cert_id+uuid4().
So to call signcert method it required to have allowed host + know the full key. If another process doesn't have access to the CA partition, he won't be able to get the key (by listing the csr request directory). As for now there is not UI to sign certificate, I can use this to sign certificate from a process into the CA partition.
I imagine monitor can use this to sign the certificate. If it run into CA partition, he will have access to csr keys.
Here cert_id is the id That I send to the user, he will download the certificate with something like: URL/cert_id.cert.pem, then I generate the csr with two UUID.
When signing from command line, we need to know those two uuid, the csr is key.csr.pem with key=cert_id+uuid4().
So to call signcert method it required to have allowed host + know the full key. If another process doesn't have access to the CA partition, he won't be able to get the key (by listing the csr request directory). As for now there is not UI to sign certificate, I can use this to sign certificate from a process into the CA partition.
I imagine monitor can use this to sign the certificate. If it run into CA partition, he will have access to csr keys.
Host-based security is worthless. Any other partition on the same machine as the ca can then emit certificates. This is not the right approach to securing this fuction.
Host-based security is worthless. Any other partition on the same machine as the ca can then emit certificates. This is not the right approach to securing this fuction.
I aggree there is security issue if another partition use the trusted host to call sign cert. I imagine this method will be improved at some point. I wanted to propose something that can allow to sign from script (console), so in order to improve security it's required to send a key as parameter.
See on top my comment.
I aggree there is security issue if another partition use the trusted host to call sign cert. I imagine this method will be improved at some point. I wanted to propose something that can allow to sign from script (console), so in order to improve security it's required to send a key as parameter.
See on top my comment.
Renewing is like requesting a new certificate, except it can be automated easily: requester must sign his renewal request with his old private key (to prove it is the legitimate requester) and some piece of information about the old certificate (I don't know if serial is enough, as CA should not have to keep all issued certs in its memory, and it must check that the client is requesting the same kind of certificate - so maybe client must send the whole old certificate), then submit a new signature request.
Server, if request signature matches the old certificate, and the old certificate is signed by the correct CA key, and the old certificate is not revoked, and the new certificate has the same attributes (except validity period, at least), then CA can automatically issue a new certificate.
Renewing is like requesting a new certificate, except it can be automated easily: requester must sign his renewal request with his old private key (to prove it is the legitimate requester) and some piece of information about the old certificate (I don't know if serial is enough, as CA should not have to keep all issued certs in its memory, and it must check that the client is requesting the same kind of certificate - so maybe client must send the whole old certificate), then submit a new signature request.
Server, if request signature matches the old certificate, and the old certificate is signed by the correct CA key, and the old certificate is not revoked, and the new certificate has the same attributes (except validity period, at least), then CA can automatically issue a new certificate.
I will improve the client request method to check at every run if the certificate is expired, then automatically request renew and backup the expired certificate. But, may be in some cases to restart to process which was using the expired certificate, does this should be managed by this request script ? Do you have any idea ?
I will improve the client request method to check at every run if the certificate is expired, then automatically request renew and backup the expired certificate. But, may be in some cases to restart to process which was using the expired certificate, does this should be managed by this request script ? Do you have any idea ?