Hi folks, I have a question regarding EST (automatic) reenrollment.
I've got EST simpleenroll working. Bot these ways work perfectly: * unauthenticated clients -> require manual approval in server (as documented in [1]) * authorized signer -> authenticate with dedicated mycn:pki_client certificate -> can request certificates for any CN, and no manual approval required in server (as documented in [2]) [1] https://openxpki.readthedocs.io/en/develop/subsystems/est.html#smoke-test [2] https://openxpki.readthedocs.io/en/develop/subsystems/est.html#authenticated-test Now I want to enable renewal. My requirements are pretty much the default what EST specifies in its RFC about simplereenroll. clients that authenticate with their *'own' valid certificate* (client side certificate authentication) and issue a new certificate with the *same CN*, are *automatically*, without manual approval, issued. I have some problems getting this to work though. I have a test.pem (csr, which works when doing an enrollment), pass that to openxpki while identifying with a previously issued certificate. curl -vv -H "Content-Type: application/pkcs10" --data @test.pem --key test_issued.key --cert test_issued.crt --insecure https://localhost:8443/.well-known/est/mobility/simplereenroll This however refuses to work and returns a server 400 with content: I18N_OPENXPKI_UI_ENROLLMENT_ERROR_SIGNER_NOT_AUTHORIZED The logs show: 2023/06/08 11:56:09 openxpki.application.INFO Trusted Signer not found in trust list (CN=testme2,DC=Test Deployment client TLS enroll,DC=OpenXPKI,DC=org). Both the certificate as the csr have the same CN: testme2 $ openssl x509 -in test_issued.crt -noout -text |grep Subj |grep CN Subject: DC=org, DC=OpenXPKI, DC=Test Deployment client TLS enroll, *CN=testme2* $ cat test.pem | base64 --decode | openssl req -inform der -noout -text |grep Subject |grep CN= Subject: *CN=testme2* The authentication part seems to work fine, if I revoke test_issued.crt I get a different error (I18N_OPENXPKI_UI_ENROLLMENT_ERROR_SIGNER_REVOKED)is. So I guess I have something wrong/incorrect in my configuration. Could you see what I am doing wrong? Have some hints where to look? Regards, Harm Full logging 2023/06/08 11:56:08 INF authenticated client DN: CN=testme2,DC=Test Deployment client TLS enroll,DC=OpenXPKI,DC=org [pid=708|ep=[undef]] ==> openxpki.log <== 2023/06/08 11:56:08 INFO Login successful (user: Anonymous, role: System) [pid=714|sid=Yvf3|pki_realm=mobility] ==> catchall.log <== 2023/06/08 11:56:08 openxpki.auth.INFO Login successful (user: Anonymous, role: System) [pid=714|sid=Yvf3|pki_realm=mobility] ==> workflows.log <== 2023/06/08 11:56:09 73215 Rendering subject: CN=testme2,DC=Test Deployment client TLS enroll,DC=OpenXPKI,DC=org ==> catchall.log <== 2023/06/08 11:56:09 openxpki.application.INFO Rendering subject: CN=testme2,DC=Test Deployment client TLS enroll,DC=OpenXPKI,DC=org [pid=714|user=Anonymous|role=System|sid=Yvf3|wftype=certificate_enroll|wfid=73215|pki_realm=mobility] ==> workflows.log <== 2023/06/08 11:56:09 73215 Trusted Signer chain validated - trusted root is tzw4UJlDLemD55ojDPxmAHU-4F8 ==> catchall.log <== 2023/06/08 11:56:09 openxpki.application.INFO Trusted Signer chain validated - trusted root is tzw4UJlDLemD55ojDPxmAHU-4F8 [pid=714|user=Anonymous|role=System|sid=Yvf3|wftype=certificate_enroll|wfid=73215|pki_realm=mobility] ==> workflows.log <== 2023/06/08 11:56:09 73215 Trusted Signer not found in trust list (CN=testme2,DC=Test Deployment client TLS enroll,DC=OpenXPKI,DC=org). ==> catchall.log <== 2023/06/08 11:56:09 openxpki.application.INFO Trusted Signer not found in trust list (CN=testme2,DC=Test Deployment client TLS enroll,DC=OpenXPKI,DC=org). [pid=714|user=Anonymous|role=System|sid=Yvf3|wftype=certificate_enroll|wfid=73215|pki_realm=mobility] ==> est.log <== 2023/06/08 11:56:09 INF Disconnect client [pid=708|ep=[undef]] est/mobility.conf contains: [global] socket = /var/openxpki/openxpki.socket realm = mobility # Servername can be set for all workflows/operations here at once or # for each one below. If neither one is set, simpleenroll/simplerenroll # use the calabel from the URL as server name # servername = default # Set to 1 if you want to server EST over plain HTTP # We use 1 as we have an SSL proxy in front of us insecure = 0 [logger] # A loglevel of DEBUG MIGHT disclose sensitive user input data # A loglevel of TRACE WILL dump any communication unfiltered log_level = INFO # <--- this logger seems to have no effect BTW, setting this to TRACE does not give more est logging. [auth] stack = _System realm/mobility/est/mobility.yaml contains label: EST Default Endpoint authorized_signer: rule1: # Full DN subject: CN=.+:pkiclient,.* renewal_period: 000060 # for an explanation of the policy options have a look at rpc/enroll.yaml policy: # anon request are ok allow_anon_enroll: 1 # manual approval for anon request allow_man_approv: 1 # enforce subject duplicate policy max_active_certs: 1 auto_revoke_existing_certs: 1 # require one approval approval_points: 1 allow_replace: 1 profile: cert_profile: tls_client cert_subject_style: enroll eligible: initial: value: 0 renewal: value: 1 onbehalf: value: 1
_______________________________________________ OpenXPKI-users mailing list OpenXPKI-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openxpki-users