我正在为tomcat服务器configurationKerberos。 在我打电话给Web应用程序支持公司之前,我想知道是否我正在做正确的步骤,因为这是我第一次。
该域有2个区域,一个是.local,另一个是.edu。
人们将通过server.domain.edu访问服务器,因为它具有该名称的SSL证书。
我有一个Windows用户有一个注册的HTTP / server.domain.edu SPN。 该帐户可以作为服务运行。
我运行这个命令ktpass -princ HTTP/[email protected] -mapuser [email protected] -pass "UserPass" -ptype KRB5_NT_PRINCIPAL -out keytabfile.kt
。
从这个命令我得到了一个成功的映射HTTP / server.domain.edu [email protected]和密钥文件。
我将文件复制到tomcat服务器并configuration以下内容。
一个jass.conf文件:
WebFDD { com.sun.security.auth.module.Krb5LoginModule required debug=true useKeyTab=true storeKey=true keyTab="C:/keytab.kt" principal="HTTP/server.domain.edu" isInitiator=false; };
和一个krb5.conf文件:
[libdefaults] default_realm = domain default_keytab_name = FILE:c:\keytab.kt default_tkt_enctypes = rc4-hmac,aes256-cts-hmac-sha1-96,aes128-cts-hmac-sha1-96 default_tgs_enctypes = rc4-hmac,aes256-cts-hmac-sha1-96,aes128-cts-hmac-sha1-96 forwardable=true [realms] domain = { kdc = dc.domain.local admin_server = dc.domain.local } [domain_realm] domain.local = pupr.local .domain.local= pupr.local
然后在tomcatconfiguration工具中:
configuration帐户以[email protected]开头。
添加了这2个java选项:
-Djava.security.auth.login.config=C:\jaas.conf -Djava.security.krb5.conf=C:\krb5.conf
服务开始,我可以看到不需要authentication的页面。
当我在xml文件中激活kerberos时,我把server.domain.edu,端口已经设置为1433(这是SQL),所以我就这样离开它。
我试过在服务器上查看日志,但找不到任何东西
C:\Program Files\Apache Software Foundation\Tomcat 8.0\logs
是空的。
当试图访问网站,我得到这个错误:
type Exception report message Servlet.init() for servlet action threw exception description The server encountered an internal error that prevented it from fulfilling this request. exception javax.servlet.ServletException: Servlet.init() for servlet action threw exception org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:613) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:516) org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1086) org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:659) org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:223) org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1558) org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1515) java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) java.lang.Thread.run(Unknown Source) root cause java.lang.NullPointerException com.feith.webfdd.action.FddActionServlet.init(FddActionServlet.java:371) javax.servlet.GenericServlet.init(GenericServlet.java:158) org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:613) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:516) org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1086) org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:659) org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:223) org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1558) org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1515) java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) java.lang.Thread.run(Unknown Source)
谢谢你的时间!