{"id":36,"date":"2010-03-08T23:53:56","date_gmt":"2010-03-08T20:53:56","guid":{"rendered":"http:\/\/meekconsulting.com\/?p=36"},"modified":"2010-03-08T23:53:56","modified_gmt":"2010-03-08T20:53:56","slug":"using-crl-lists-with-pki-certificate-of-authorities","status":"publish","type":"post","link":"https:\/\/meekconsulting.com\/?p=36","title":{"rendered":"Using CRL lists with PKI certificate of authorities"},"content":{"rendered":"<p>Notes from 3\/8\/2010 \u00a0troubleshooting crl issues.<\/p>\n<p>Users called and could not access the cobra web site.<\/p>\n<p>They were using certificates issued by Verisign \u2013 specifically:<\/p>\n<p>CN=VeriSign Client External Certification Authority \u2013 G2<\/p>\n<p>I checked our page using the command:<\/p>\n<p><strong>openssl s_client -showcerts\u00a0 -connect usecobra.com:443 -prexit<\/strong><\/p>\n<p>and we were not accepting verisign G2 cert on cobra<\/p>\n<p>So I went to the DISA webpage: <a href=\"https:\/\/crl.chamb.disa.mil\/\">https:\/\/crl.chamb.disa.mil\/<\/a><\/p>\n<p>NOTE:\u00a0 a quicker way to get the new cert is to cut and paste from the view screen after selecting a cert on the left and clicking view on the right side of the page.<\/p>\n<p>This is an ascii representation of the cert known as PEM format.\u00a0 ( as apposed to the .DER format\u00a0 which is binary that you get when you use the download link.<\/p>\n<p>For our purposes we want the PEM format ascii file to put in our ca-bundle.txt<\/p>\n<p>I like to put the PEM cert in a file by itself to verify it.\u00a0 I named this one verisign_ECA_G2.crt<\/p>\n<p>Then I can run this to verify and get the issuer \/ subject to up in the comments.<\/p>\n<p><strong><em>openssl x509 -inform PEM -in verisign_ECA_G2.crt -issuer -subject \u2013noout<\/em><\/strong><\/p>\n<p><strong><em> <\/em><\/strong><\/p>\n<p>issuer= \/C=US\/O=U.S. Government\/OU=ECA\/CN=ECA Root CA 2<\/p>\n<p>subject= \/C=US\/O=U.S. Government\/OU=ECA\/OU=Certification Authorities\/CN=VeriSign Client External Certification Authority \u2013 G2<\/p>\n<p>I edited the ca-bundle.crt to add the comments at the top and the cert.<\/p>\n<p>I add the code like this:<\/p>\n<p>#############################################<\/p>\n<blockquote><p>#subject= \/C=US\/O=U.S. Government\/OU=ECA\/OU=Certification Authorities\/CN=VeriSign Client External Certification Authority \u2013 G2<\/p>\n<p>#issuer= \/C=US\/O=U.S. Government\/OU=ECA\/CN=ECA Root CA 2<\/p>\n<p>\u2014\u2013BEGIN CERTIFICATE\u2014\u2013<\/p>\n<p>MIIF7DCCBNSgAwIBAgIBCjANBgkqhkiG9w0BAQUFADBNMQswCQYDVQQGEwJVUzEY<\/p>\n<p>MBYGA1UEChMPVS5TLiBHb3Zlcm5tZW50MQwwCgYDVQQLEwNFQ0ExFjAUBgNVBAMT<\/p>\n<p>\u2026<\/p>\n<p>DUVDQSBSb290IENBIDIwHhcNMDgwNzAyMTQ0MTE4WhcNMTQwNzAxMTQ0MTE4WjCB<\/p>\n<p>X158kXsnY2wvH2WdMMpHmj7GvikIw\/tP\/7w9\/uwe6mE=<\/p>\n<p>\u2014\u2013END CERTIFICATE\u2014\u2013<\/p><\/blockquote>\n<p>ON linux just restart the webserver to make it take affecte<\/p>\n<blockquote><p>service httpd restart<\/p><\/blockquote>\n<p>On oracle it is a little more complicated:<\/p>\n<p>Log in as oracle<\/p>\n<p>. formsset<\/p>\n<p>cd \/ora\/wallets<\/p>\n<p>## Save off the wallet.p12\u00a0 for backup<\/p>\n<p>cp wallet.p12 wallet.p12.100308<\/p>\n<p>Edit ca-bundle.crt as described above.<\/p>\n<p>Run .\/import_cert which will \u201crecomple\u201d the wallet.p12 by running this command:<\/p>\n<blockquote><p><strong><em>\/ora\/10ias\/Apache\/Apache\/bin\/ssl2ossl -cert \/ora\/wallets\/usecobra.com.crt -key \/ora\/wallets\/usecobra.com.key -cafile \/ora\/wallets\/ca-bundle.crt -wallet \/ora\/wallets<\/em><\/strong><\/p><\/blockquote>\n<p>You will need the password for the wallet as well as the key to complete this command.<\/p>\n<p><strong> Note<\/strong> \u2013 if it fails that means the cert you added is invalid \u2013 OR you do not have the cert for the all the parents up the chain of the issuer of that cert.<\/p>\n<p>Then to restart the webserver on Oracle Solaris run the following commands<\/p>\n<p><strong><em>$ORACLE_HOME\/opmn\/bin\/opmnctl status<\/em><\/strong><\/p>\n<p><strong><em>$ORACLE_HOME\/opmn\/bin\/opmnctl stopproc ias-component=HTTP_Server<\/em><\/strong><\/p>\n<p><strong><em>$ORACLE_HOME\/opmn\/bin\/opmnctl startproc ias-component=HTTP_Server<\/em><\/strong><\/p>\n<p><strong><em>$ORACLE_HOME\/opmn\/bin\/opmnctl status<\/em><\/strong><\/p>\n<h1>Out of date CRL lists!!!<\/h1>\n<p>We found out today that the reason G2 certs from verisign were not being accepted was because the CRL file for Verisign we had in place was out of date.<\/p>\n<p>All certs from an issuer whose CRL is expired are rejected until we get\u00a0 a valid CRL list from that issuer \u2013 this is the concept that if my guest list is considered obsolete \u2013 no one from that source will get in.\u00a0 Make sense.<\/p>\n<blockquote><p><strong><em>openssl crl -inform DER -in \/etc\/httpd\/crl\/VERISIGNCLIENTEXTERNALCERTIFICATIONAUTHORITY_G2.crl -text | less<\/em><\/strong><\/p><\/blockquote>\n<p>The command above will show the revoked certs by date and reason \u2013 as well as the \u201cvaliditiy dates\u201d for the list<\/p>\n<p>Certificate Revocation List (CRL):<\/p>\n<blockquote><p>Version 2 (0x1)<\/p>\n<p>Signature Algorithm: sha1WithRSAEncryption<\/p>\n<p>Issuer: \/C=US\/O=U.S. Government\/OU=ECA\/OU=Certification Authorities\/CN=VeriSign Client External Certification Authority \u2013 G2<\/p>\n<p>Last Update: May 29 15:23:49 2009 GMT<\/p>\n<p>Next Update: May 30 09:23:49 2009 GMT<\/p><\/blockquote>\n<p>In the above example has a Next Update date \u2013 after that time no one with a verisign G2 signed cert will be able to get in.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Notes from 3\/8\/2010 \u00a0troubleshooting crl issues. Users called and could not access the cobra web site. They were using certificates issued by Verisign \u2013 specifically: CN=VeriSign Client External Certification Authority \u2013 G2 I checked our page using the command: openssl &hellip; <a href=\"https:\/\/meekconsulting.com\/?p=36\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/meekconsulting.com\/index.php?rest_route=\/wp\/v2\/posts\/36"}],"collection":[{"href":"https:\/\/meekconsulting.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/meekconsulting.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/meekconsulting.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/meekconsulting.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=36"}],"version-history":[{"count":1,"href":"https:\/\/meekconsulting.com\/index.php?rest_route=\/wp\/v2\/posts\/36\/revisions"}],"predecessor-version":[{"id":37,"href":"https:\/\/meekconsulting.com\/index.php?rest_route=\/wp\/v2\/posts\/36\/revisions\/37"}],"wp:attachment":[{"href":"https:\/\/meekconsulting.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=36"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/meekconsulting.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=36"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/meekconsulting.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=36"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}