我有一台具有Spnego SSO设置的tomcat服务器,它工作正常,没有任何问题。 现在,我想在其前面添加一个Apache服务器以启用SSL。 Apache服务器使用AJP与之通信:
<VirtualHost *:58443>
SSLEngine on
ServerName ca09417d.global.local:58443
SSLCertificateFile "${SRVROOT}/conf/ssl/ca09417d.server.cer"
SSLCertificateKeyFile "${SRVROOT}/conf/ssl/ca09417d.server.key"
...
ProxyRequests off
ProxyPreserveHost On
ProxyPass /vcaps3 ajp://cavcdbdev02:58009/vcaps3
ProxyPassReverse /vcaps3 ajp://cavcdbdev02:58009/vcaps3
</virtualhost>
此后,服务器会报告此错误:
KrbException: Invalid argument (400) - Cannot find key of appropriate type to decrypt AP REP - AES256 CTS mode with HMAC SHA1-96
sun.security.krb5.KrbApReq.authenticate(KrbApReq.java:278)
sun.security.krb5.KrbApReq.<init>(KrbApReq.java:149)
sun.security.jgss.krb5.InitSecContextToken.<init>(InitSecContextToken.java:108)
sun.security.jgss.krb5.Krb5Context.acceptSecContext(Krb5Context.java:829)
sun.security.jgss.GSSContextImpl.acceptSecContext(GSSContextImpl.java:342)
sun.security.jgss.GSSContextImpl.acceptSecContext(GSSContextImpl.java:285)
sun.security.jgss.spnego.SpNegoContext.GSS_acceptSecContext(SpNegoContext.java:906)
sun.security.jgss.spnego.SpNegoContext.acceptSecContext(SpNegoContext.java:556)
sun.security.jgss.GSSContextImpl.acceptSecContext(GSSContextImpl.java:342)
sun.security.jgss.GSSContextImpl.acceptSecContext(GSSContextImpl.java:285)
net.sourceforge.spnego.SpnegoAuthenticator.doSpnegoAuth(SpnegoAuthenticator.java:444)
net.sourceforge.spnego.SpnegoAuthenticator.authenticate(SpnegoAuthenticator.java:283)
net.sourceforge.spnego.SpnegoHttpFilter.doFilter(SpnegoHttpFilter.java:229)
所以我尝试了这些事情:
现在我不知道该怎么办。
这是我的krb5.conf的主要部分:
[libdefaults]
default_tkt_enctypes = rc4-hmac aes256-cts aes128-cts
default_tgs_enctypes = rc4-hmac aes256-cts aes128-cts
permitted_enctypes = rc4-hmac aes256-cts aes128-cts
你能帮我吗?
非常感谢!
Justin