Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add certificate revocation feature #21

Open
komuw opened this issue Jul 15, 2017 · 3 comments
Open

add certificate revocation feature #21

komuw opened this issue Jul 15, 2017 · 3 comments

Comments

@komuw
Copy link
Owner

komuw commented Jul 15, 2017

https://tools.ietf.org/html/draft-ietf-acme-acme-02#section-6.6

To request that a certificate be revoked, the client sends a POST
   request to the ACME server's revoke-cert URI.  The body of the POST
   is a JWS object whose JSON payload contains the certificate to be
   revoked:

   certificate (required, string):  The certificate to be revoked, in
      the base64url-encoded version of the DER format.  (Note: This
      field uses the same modified Base64 encoding rules used elsewhere
      in this document, so it is different from PEM.)

   POST /acme/revoke-cert HTTP/1.1
   Host: example.com

   {
     "resource": "revoke-cert",
     "certificate": "MIIEDTCCAvegAwIBAgIRAP8..."
   }
   /* Signed as JWS */

   Revocation requests are different from other ACME request in that
   they can be signed either with an account key pair or the key pair in
   the certificate.  Before revoking a certificate, the server MUST
   verify that the key used to sign the request is authorized to revoke
   the certificate.  The server SHOULD consider at least the following
   keys authorized for a given certificate:

   o  the public key in the certificate.

   o  an account key that is authorized to act for all of the
      identifier(s) in the certificate.
If the revocation succeeds, the server responds with status code 200
   (OK).  If the revocation fails, the server returns an error.
@komuw
Copy link
Owner Author

komuw commented Jul 15, 2017

We probably want to use something like https://crt.sh [1] to search all non expired certs of a given domain.
Then:
for i in non_expired_domains:
download cert, i
get public-key from cert
revoke(i) using public-key

  1. https://crt.sh/?q=google.com

@komuw
Copy link
Owner Author

komuw commented Jul 15, 2017

@komuw
Copy link
Owner Author

komuw commented Jul 15, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant