On Tue, Jun 16, 2015 at 4:06 PM, Christopher Schultz <
ch...@christopherschultz.net> wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA256
>
> Larry,
>
> On 6/16/15 3:34 PM, Cohen, Laurence wrote:
> > On Tue, Jun 16, 2015 at 3:13 PM, Christopher Schultz <
> > ch...@christopherschultz.net> wrote:
> >
> > Larry,
> >
> > BTW, you're doing great. Thanks for battling-through. See below.
> >
> > On 6/16/15 2:29 PM, Cohen, Laurence wrote:
> >>>> ******* nss.conf.testweb01 *******
> >>>>
> >>>> Listen 443
> >>>>
> >>>> AddType application/x-x509-ca-cert .crt AddType
> >>>> application/x-pkcs7-crl    .crl
> >>>>
> >>>> NSSPassPhraseDialog file:/etc/httpd/.password.conf
> >>>> #NSSPassPhraseDialog  builtin
> >>>>
> >>>> NSSPassPhraseHelper /usr/sbin/nss_pcache
> >>>>
> >>>> NSSSessionCacheSize 10000 NSSSessionCacheTimeout 100
> >>>> NSSSession3CacheTimeout 86400
> >>>>
> >>>>
> >>>> NSSRandomSeed startup builtin
> >>>>
> >>>>
> >>>> <VirtualHost _default_:443>
> >>>>
> >>>> DocumentRoot "/var/www/docroot" NSSProxyCheckPeerCN Off
> >>>> NSSEngine on NSSProxyEngine on NSSEnforceValidCerts off
> >>>> NSSRenegotiation on NSSRequireSafeNegotiation on
> >>>>
> >>>> NSSCipherSuite
> >>>> +rsa_3des_sha,-rsa_des_sha,-rsa_rc4_40_md5,-rsa_rc2_40_md5,-rsa_nul
> l_m
> >
> >>>>
> d5,-rsa_null_sha,+fips_3des_sha,-fips_des_sha,-fortezza,-fortezza_rc4_12
> > 8_sha,-fortezza_null,-rsa_des_56_sha,-rsa_rc4_56_sha,+rsa_aes_128_sha,
> +r
> >
> >
> sa_aes_256_sha
> >>>>
> >>>> NSSProxyCipherSuite
> >>>> +rsa_3des_sha,-rsa_des_sha,-rsa_rc4_40_md5,-rsa_rc2_40_md5,-rsa_nul
> l_m
> >
> >>>>
> d5,-rsa_null_sha,+fips_3des_sha,-fips_des_sha,-fortezza,-fortezza_rc4_12
> > 8_sha,-fortezza_null,-rsa_des_56_sha,-rsa_rc4_56_sha,+rsa_aes_128_sha,
> +r
> >
> >
> sa_aes_256_sha
> >>>>
> >>>> NSSProtocol TLSv1 NSSNickname Server-Cert
> >>>> NSSCertificateDatabase /etc/httpd/alias NSSFIPS on NSSOCSP
> >>>> off
> >>>>
> >>>> ProxyPreserveHost On
> >>>>
> >>>>
> >>>> <Location /dse-help> #SSLRenegBufferSize 10486000
> >>>> NSSVerifyClient none NSSOptions +StdEnvVars ProxyPass
> >>>> https://testapp01:8007/dse-help
> >>>> <https://testapp01.novetta.com:8007/dse-help>
> >>>> ProxyPassReverse https://testapp01:8007/dse-help
> >>>> <https://testapp01.novetta.com:8007/dse-help> </Location>
> >
> > Okay, good: here's the real meat of the file (repeated over and
> > over, of course). The "Location" matches an incoming URL and then
> > the stuff between the <Location> and </Location> will be effective
> > for requests whose URLs match that pattern.
> >
> > So, for a request for /dse-help, the request is forwarded-over to
> > Tomcat on port 8007 using the https:// protocol. The
> > ProxyPassReverse will re-write response headers like Location and
> > Set-Cookie to make sure they point to the reverse proxy (httpd)
> > server instead of Tomcat (testapp01:8007).
> >
> > This is all you need to get things working. Since the above is
> > from the :443 VirtualHost, you just need to make sure that similar
> > configuration exists in the :80 VirtualHost configuration files.
> >
> >>>> # initialize the SSL headers to a blank value to avoid http
> >>>> header forgeries RequestHeader set SSL_CLIENT_CERT ""
> >>>> RequestHeader set SSL_CIPHER "" RequestHeader set
> >>>> SSL_SESSION_ID "" RequestHeader set SSL_CIPHER_USEKEYSIZE ""
> >
> > I'm not entirely sure:
> >
> > a) How mod_nss expects to send the original HTTPS information to
> > Tomcat b) Whether or not Tomcat is configured to detect this
> > information and make sure it's available to the container/web
> > application c) In what order the "StdEnvVars" and "RequestHeader
> > set" operations take place.
> >
> > I would want to make sure you've got all that right so tht the
> > following takes place:
> >
> > 1. Request comes in 2. Request has HTTPS-related headers stripped
> > 3. Request has HTTPS-related headers added during proxying
> >
> > You might consider using "RequestHeader unset" instead of
> > "RequestHeader set ''". There's no reason to send-over a blank
> > string.
> >
> >>>> RequestHeader set SSL_CLIENT_CERT "%{SSL_CLIENT_CERT}s"
> >>>> RequestHeader set SSL_CIPHER "%{SSL_CIPHER}s" RequestHeader
> >>>> set SSL_SESSION_ID "%{SSL_SESSION_ID}s" RequestHeader set
> >>>> SSL_CIPHER_USEKEYSIZE "%{SSL_CIPHER_USEKEYSIZE}s"
> >
> > If you are going to be "setting" each of these with new values,
> > you may as well not bother to "unset" (or "set" them to "")
> > beforehand. I think it's just extra processing that wastes time and
> > doesn't accomplish. Of course, you'll want to verify that I'm
> > correct in that it doesn't matter if you remove the "unsets" before
> > the "sets", but I think you'll be okay.
> >>>> ******* rewwrite.conf.testweb01 *******
> >>>>
> >>>> # # rewrite.conf: # These rules handle all http:// protocol
> >>>> requests. # RewriteEngine on
> >>>>
> >>>> # General: # Disable HTTP TRACE on all requests. RewriteCond
> >>>> %{REQUEST_METHOD} ^TRACE RewriteRule .* - [F]
> >>>>
> >>>> # General: # Redirect requests to https, EXCEPT for the
> >>>> favicon, User-Defined URLs, System-Defined URLs, DDMS, AOP. #
> >>>> https rewrite rules are found in ssl.conf. RewriteCond
> >>>> %{SERVER_PROTOCOL} !https RewriteCond %{REQUEST_URI}
> >>>> !^/favicon.ico RewriteCond %{REQUEST_URI}      !^/mdr/ns
> >>>> RewriteCond %{REQUEST_URI} !^/mdr/irs RewriteCond
> >>>> %{REQUEST_URI}      !^/mdr/documents RewriteCond
> >>>> %{REQUEST_URI}      !^/dse/uriService RewriteCond
> >>>> %{REQUEST_URI}      !^/dse/ns RewriteCond %{REQUEST_URI}
> >>>> !^/dse/irs RewriteCond %{REQUEST_URI}      !^/dse/documents
> >>>> RewriteCond %{REQUEST_URI}      !^/dse/downloads
> >>>>
> >>>> # query string containing wsdl (e.g.
> >>>> <somepath>/publish?wsdl), let it fetch as http RewriteCond
> >>>> %{QUERY_STRING}     !wsdl
> >>>>
> >>>> RewriteRule ^/(.*)$             https://testweb01/$1
> >>>> <https://testweb01.novetta.com/$1> [last,redirect]
> >
> > Oh, man. This is awful.
> >
> > I'll bet the SSL-based configuration was re-written using
> > ProxyPass/ProxyPassReverse and then the mod_rewrite (that's what
> > all this stuff is) stuff was simply removed (or no longer
> > referenced from httpd.conf, probably).
> >
> > But it looks like the RewriteCond/RewriteRule stuff was actually
> > enabling your proxying (in the very ugliest way possible, I might
> > add), so you lost your :80 proxying.
> >
> > For the most part, you should be able to copy the <Location>
> > sections from your nss.conf into whatever file you would like to
> > include to set up your :80 VirtualHost, and that should be about
> > it. (Of course, you'll want to remove the NSSOptions and
> > NSSVerifyClient sections as well.)
> >
> > If you'd prefer to have a slightly cleaner configuration, you can
> > change this:
> >
> >>>> <Location /dse-help> #SSLRenegBufferSize 10486000
> >>>> NSSVerifyClient none NSSOptions +StdEnvVars ProxyPass
> >>>> https://testapp01:8007/dse-help
> >>>> <https://testapp01.novetta.com:8007/dse-help>
> >>>> ProxyPassReverse https://testapp01:8007/dse-help
> >>>> <https://testapp01.novetta.com:8007/dse-help> </Location>
> >
> > to this:
> >
> > ProxyPass        /dse-help https://testapp01:8007/dse-help
> > ProxyPassReverse /dse-help https://testapp01:8007/dse-help
> >
> > , since you don't need additional configuration.
> >
> > I would be willing to bet that if you set NSSOptions and
> > NSSVerifyClient at the top-level, you wouldn't have to specify it
> > separately in all of those <Location> sections, and your
> > configuration would get even simpler, but I'm not aware of all of
> > the intricacies of your environment, so I wouldn't recommend you
> > make that change without someone watching who knows this
> > configuration very well.
> >
> > Hope that helps, -chris
> >>
> >> ---------------------------------------------------------------------
> >>
> >>
> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
> >> For additional commands, e-mail: users-h...@tomcat.apache.org
> >>
> > Thank you Chris.  Unfortunately much of what you are saying is over
> > my head.  I'm a real newbie.
>
> Okay.
>
> > If you are saying I should set up another file for a :80 Virtual
> > Host, and include it from httpd.conf, can I just pretty much copy
> > what's in the :443 Virtual Host?
>
> I would first find the existing :80 VirtualHost and make sure that
> there is no conflicting configuration in there for what you are about
> to do.
>
> But then, yes, I think you can pretty much copy the <Location>
> sections from nss.conf into the :80 VirtualHost.
>
> Forget what I said about removing the NSSOptions and NSSVerifyClient
> directives, because I think you still need to make sure that you are
> communicating properly between httpd and Tomcat (over SSL). I wouldn't
> want to break that by removing those directives.
>
> - -chris
> -----BEGIN PGP SIGNATURE-----
> Comment: GPGTools - http://gpgtools.org
>
> iQIcBAEBCAAGBQJVgIG5AAoJEBzwKT+lPKRYBAwQAJitZGirkCLwBoNvodNUeDwZ
> KOLaFuIln4OqYf/wKpNBn/Lio9KlT21KPvquy5WpCgJGu829T+z/lSqMMXgYlcZp
> JArOHlLQJwKZ6u5rZG+E2BacN5JM/uIWgbX8FUw7DIHkIUxmGyRcXXIzpG+v/Bcb
> ne+7aO0IbUlvVRxLoSQ8zUE0u2Xbvu7BLuzk0/RtRblUPwSJU3aHxS6DdZkVuyut
> qbARbmSw7bsbrd1mFBPpSTpTQ6mxOsUkeW0CS4P/yvMqvAcZHh2+uymfWyUhCyUp
> 5k2Qlf/Um8NYimlun8SO6ByA4bfcvBGDAgBB1L2eWajiImjOBI+neZNmQv4t1r90
> 5OeL2FvkfhPviukU56vRdKUmy9RzSRtHQkYKy9YZcPPWIZmKRkZSufGbCNNojXii
> 1LiV76W83tfPVhY5cEbO/dFU3M4ACmoynDEfodMeXkFNWNs+UEBNKNrjXZ1o38vH
> Xl42abh7JlVlyJmIeq9Sh/L0GaibvcOaJ/Ovus2FpghuLDunzd6Kxs2LH3+Z5HVu
> qV2nzSB2gKe48MFVwzh6kTqHxrpOuQocb6aBps3RpjSM2dD2FS/L5hOLf2AtWiwm
> cd/QeC3Be5SjgxJOmjxT8la6MuGJZ4AO05oODLqBu3EjspCWCzKefpLTrWV7MXnC
> 4IXbGlRviOsg7cuWXL+u
> =a8pl
> -----END PGP SIGNATURE-----
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: users-h...@tomcat.apache.org
>
> Thank you Chris.  I'm playing with it but it's still not working, and I
have to move on to something else now.  Thanks for the help though.

Larry Cohen

Reply via email to