I am attempting to set up a reverse proxy (for deployment to use CAC-PIV software). Before I deploy I get the following error:
<SITE> didn’t accept your login certificate, or one may not have been provided.
ERR_BAD_SSL_CLIENT_AUTH_CERT
I have confirmed that the site is "secure" and that the certificates appear to be good. If I turn off SSLVerifyClient the error changes to being too many redirects. Here is the VirtualHost section from my httpd.conf:
<VirtualHost *:443>
ServerName <<SERVER>>
ProxyRequests Off
ProxyVia Off
<Proxy *>
# Require all granted
Order allow,deny
Allow from all
</Proxy>
ProxyPass / http://localhost:8080
ProxyPassReverse / http://localhost:8080
SSLEngine On
SSLProxyEngine On
SSLCertificateFile "/etc/httpd/certs/<SERVER>.crt"
SSLCertificateKeyFile "/etc/httpd/certs/<SERVER>.key"
SSLOptions +StdEnvVars +ExportCertData
# Allow username/password fallback
# SSLVerifyClient optional
SSLVerifyClient require
SSLCACertificatePath /etc/pki/tls/ca-dod/
#SSLCACertificateFile /etc/pki/tls/ca-dod/bizops-CA-CA.crt
SSLVerifyDepth 10
# Reset all headers
RequestHeader set SSL_CLIENT_S_DN ""
# Setting headers with data from the certificate
RequestHeader set SSL_CLIENT_S_DN "%{SSL_CLIENT_S_DN}s"
# Rewrite to HTTPS
RewriteEngine on
# redirect requests with arguments with the arguments
RewriteCond %{QUERY_STRING} !^$
RewriteRule ^/(.*)$ https://%{HTTP_HOST}/$1?%{QUERY_STRING} [R,L]
# all others redirect without the argument
RewriteRule ^/(.*)$ https://%{HTTP_HOST}/$1 [R,L]
# Maintain Application Links
RewriteEngine On
RewriteCond %{REMOTE_ADDR} 127.0.0.1 [OR]
RewriteCond %{REMOTE_ADDR} 10.10.2.*
RewriteCond %{SSL:SSL_CLIENT_VERIFY} NONE
RewriteRule ^ - [P,QSA,L]
RewriteCond %{REMOTE_ADDR} !^127.0.0.1
RewriteCond %{SSL:SSL_CLIENT_VERIFY} !SUCCESS
RewriteRule ^ - [F]
# Disable forward proxying
ProxyRequests Off
ProxyVia Off
</VirtualHost>
So I realized I didn't have a CRL identified either and added it, no luck.
SSLEngine On
SSLProxyEngine On
SSLCertificateFile "/etc/httpd/certs/<SERVER>.crt"
SSLCertificateKeyFile "/etc/httpd/certs/<SERVER>.key"
SSLOptions +StdEnvVars +ExportCertData
# Allow username/password fallback
SSLVerifyClient require
SSLCACertificatePath /etc/pki/tls/ca-dod/
SSLCARevocationPath /etc/pki/tls/ca-dod/
SSLVerifyDepth 10
Is there anything else I'm missing here?
I suspect at this point if I can get the certificate to be recognized things will work. It looks like it's rejecting the newly generated certificate. It may be format. If I change SSLVerifyClient to optional it gets caught in an infinite loop trying to forward, getting kicked back to 8080, then trying to forward again.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
It could be due to a few things.
Update your browser to the latest version, then clear your browser Cache and Cookies.
Here it's explained in detail - https://cheapsslweb.com/resources/how-to-fix-the-err_bad_ssl_client_auth_cert-error
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.