Hello! We are experiencing two problems when using CRLs. Our Linux systems runs strongSwan 5.6.2.
1) Because we want a hourly update of CRLs and the standard CRLs timeout is 7 days, we created a cronjob, that fetches the latest CRL every hour. This CRL file is named: /etc/ipsec.d/crls/COMPANY-SUB-CA01.crl For a test, I additionally enabled CRL caching, but this did not make any difference: charon { cache_crls = yes } Here is the problematic run: Aug 22 16:54:44 2101120420063 charon: 15510[CFG] rereading crls from '/etc/ipsec.d/crls' Aug 22 16:54:44 2101120420063 charon: 15510[CFG] loaded crl from '/etc/ipsec.d/crls/0dff165cefbd2ddfb18f27e9215a4897b79f3008.crl' Aug 22 16:54:44 2101120420063 charon: 15510[LIB] crl #75 is not newer - existing crl #75 retained Aug 22 16:54:44 2101120420063 charon: 15510[CFG] loaded crl from '/etc/ipsec.d/crls/2d07eba139f0caad8a5ef7b87d542c46bbcd48ab.crl' Aug 22 16:54:44 2101120420063 charon: 15510[LIB] crl #02 is not newer - existing crl #02 retained Aug 22 16:54:44 2101120420063 charon: 15510[CFG] loaded crl from '/etc/ipsec.d/crls/48db6c1436fcdce1dc14b91619344b669e4dee6c.crl' Aug 22 16:54:44 2101120420063 charon: 15510[LIB] crl #01:62:32 is not newer - existing crl #01:62:32 retained Aug 22 16:54:44 2101120420063 charon: 15510[CFG] loaded crl from '/etc/ipsec.d/crls/COMPANY-SUB-CA01.crl' Aug 22 16:54:44 2101120420063 charon: 15510[LIB] crl #77 is newer - existing crl #75 replaced As you can see here, the manually updated CRL is newer (#77) and strongSwan replaces the old one (#75) by this new version. This seems to be correct. In the new (#77) CRL I have the following entry: Serial Number: 2500000075E60D6340C615C22D000100000075 Revocation Date: Aug 22 16:49:00 2018 GMT CRL entry extensions: X509v3 CRL Reason Code: Certificate Hold Now, if I try to connect, I get the following output and the user is accepted. But this is wrong, because the certificate is on hold! Aug 22 16:54:53 2101120420063 charon: 15504[CFG] crl is valid: until Aug 30 04:58:47 2018 Aug 22 16:54:53 2101120420063 charon: 15504[CFG] using cached crl Aug 22 16:54:53 2101120420063 charon: 15504[CFG] fetching crl from 'http://ca.company-group.local/CertEnroll/COMPANY-SUB-CA01+.crl' ... Aug 22 16:54:53 2101120420063 charon: 15504[LIB] sending request to 'http://ca.company-group.local/CertEnroll/COMPANY-SUB-CA01+.crl'... Aug 22 16:54:53 2101120420063 charon: 15504[CFG] fetching crl from 'http://ca.COMPANY.net/CertEnroll/COMPANY-SUB-CA01+.crl' ... Aug 22 16:54:53 2101120420063 charon: 15504[LIB] sending request to 'http://ca.COMPANY.net/CertEnroll/COMPANY-SUB-CA01+.crl'... Aug 22 16:54:53 2101120420063 charon: 15504[LIB] libcurl request failed [60]: SSL certificate problem, verify that the CA cert is OK. Details: Aug 22 16:54:53 2101120420063 charon: 15504[LIB] error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed Aug 22 16:54:53 2101120420063 charon: 15504[CFG] crl fetching failed Aug 22 16:54:53 2101120420063 charon: 15504[CFG] certificate status is good Aug 22 16:54:53 2101120420063 charon: 15504[CFG] certificate "DC=local, DC=company-group, CN=COMPANY-SUB-CA01" key: 4096 bit RSA Aug 22 16:54:53 2101120420063 charon: 15504[CFG] using trusted ca certificate "CN=COMPANY-ROOT-CA01" Aug 22 16:54:53 2101120420063 charon: 15504[CFG] checking certificate status of "DC=local, DC=company-group, CN=COMPANY-SUB-CA01" Aug 22 16:54:53 2101120420063 charon: 15504[CFG] ocsp check skipped, no ocsp found Aug 22 16:54:53 2101120420063 charon: 15504[CFG] using trusted certificate "CN=COMPANY-ROOT-CA01" Aug 22 16:54:53 2101120420063 charon: 15504[CFG] crl correctly signed by "CN=COMPANY-ROOT-CA01" Aug 22 16:54:53 2101120420063 charon: 15504[CFG] crl is valid: until Jun 05 21:52:45 2028 Aug 22 16:54:53 2101120420063 charon: 15504[CFG] using cached crl Aug 22 16:54:53 2101120420063 charon: 15504[CFG] certificate status is good Aug 22 16:54:53 2101120420063 charon: 15504[CFG] certificate "CN=COMPANY-ROOT-CA01" key: 4096 bit RSA Aug 22 16:54:53 2101120420063 charon: 15504[CFG] reached self-signed root ca with a path length of 1 Aug 22 16:54:53 2101120420063 charon: 15504[IKE] authentication of 'testu...@company.de' with RSA signature successful If I restart strongSwan the user is denied correctly: certificate was revoked on Aug 22 16:52:00 UTC 2018, reason: certificate hold Where is my fault and can somebody explain it? 2) And we have another problem with delta CRLs: As I understand strongSwan is supporting delta CRLs. The following line in the logfile shows, that strongSwan correctly fetches the (delta) CRL: Aug 22 16:00:53 2101120420063 charon: 30400[CFG] fetching crl from 'http://ca.company-group.local/CertEnroll/COMPANY-SUB-CA01+.crl' ... And the delta CRL has an entry with reason "remove from crl" in it. Aug 22 16:01:43 2101120420063 charon: 30400[CFG] using trusted certificate "DC=local, DC=company-group, CN=COMPANY-SUB-CA01" Aug 22 16:01:43 2101120420063 charon: 30400[CFG] crl correctly signed by "DC=local, DC=company-group, CN=COMPANY-SUB-CA01" Aug 22 16:01:43 2101120420063 charon: 30400[CFG] crl is valid: until Aug 29 04:02:43 2018 Aug 22 16:01:43 2101120420063 charon: 30400[CFG] using cached crl Aug 22 16:01:43 2101120420063 charon: 30400[CFG] certificate "DC=local, DC=company-group, CN=COMPANY-SUB-CA01" key: 4096 bit RSA Aug 22 16:01:43 2101120420063 charon: 30400[CFG] using trusted ca certificate "CN=COMPANY-ROOT-CA01" Aug 22 16:01:43 2101120420063 charon: 30400[CFG] certificate "CN=COMPANY-ROOT-CA01" key: 4096 bit RSA Aug 22 16:01:43 2101120420063 charon: 30400[CFG] reached self-signed root ca with a path length of 0 Aug 22 16:01:43 2101120420063 charon: 30400[CFG] using trusted certificate "DC=local, DC=company-group, CN=COMPANY-SUB-CA01" Aug 22 16:01:43 2101120420063 charon: 30400[CFG] crl correctly signed by "DC=local, DC=company-group, CN=COMPANY-SUB-CA01" Aug 22 16:01:43 2101120420063 charon: 30400[CFG] crl is valid: until Aug 24 04:11:38 2018 Aug 22 16:01:43 2101120420063 charon: 30400[CFG] certificate was revoked on Aug 22 14:01:35 UTC 2018, reason: remove from crl Aug 22 16:01:43 2101120420063 charon: 30400[CFG] using cached crl Aug 22 16:01:43 2101120420063 charon: 30400[IKE] no trusted RSA public key found for 'testu...@company.de' But as you can see here, the user is denied. What happened here? Is the (delta) reason "remove from crl" misinterpreted as an revocation reason? Regards Sven Anders -- Sven Anders <and...@anduras.de> () UTF-8 Ribbon Campaign /\ Support plain text e-mail ANDURAS intranet security AG Messestrasse 3 - 94036 Passau - Germany Web: www.anduras.de - Tel: +49 (0)851-4 90 50-0 - Fax: +49 (0)851-4 90 50-55 Those who would give up essential Liberty, to purchase a little temporary Safety, deserve neither Liberty nor Safety. - Benjamin Franklin
<<attachment: anders.vcf>>