Apache2 + mod_auth_kerb:密钥表中主体的密钥版本号不正确

我已经configuration了apache2和mod_auth_kerb。 我以这种方式设置了我的.htaccess

# cat .htaccess AuthType Kerberos AuthName "Domain login" KrbAuthRealms DOMAIN.COM KrbMethodK5Passwd on Krb5KeyTab /etc/httpd/httpd.keytab require valid-user 

当我在IE中打开页面时,在apache日志中出现以下错误:

 gss_accept_sec_context() failed: Miscellaneous failure (, Key version number for principal in key table is incorrect) 

然后我可以设置密码和通过基本authenticationlogin,这是完全没问题的。 但是我不能通过票证进行validation。

 # klist -k /etc/httpd/httpd.keytab Keytab name: FILE:/etc/httpd/httpd.keytab KVNO Principal ---- -------------------------------------------------------------------------- 6 host/[email protected] 6 host/[email protected] 6 host/[email protected] 6 host/[email protected] 6 host/[email protected] 6 host/[email protected] 6 [email protected] 6 [email protected] 6 [email protected] 6 HTTP/[email protected] 6 HTTP/[email protected] 6 HTTP/[email protected] 6 HTTP/[email protected] 6 HTTP/[email protected] 6 HTTP/[email protected] 

我应该如何处理KVNO? 它有什么不对?

PS KDC是ActiveDirectory(Windows 2003服务器)内的KDC。 我的服务器平台是SUSE Linux 10:

 # cat /proc/version Linux version 2.6.16.60-0.21-smp (geeko@buemphasized textildhost) (gcc version 4.1.2 20070115 (SUSE Linux)) #1 SMP Tue May 6 12:41:02 UTC 2008 

mod_auth_kerb是最新的(5.4-4.15)。 Kerberos库不是:

 # zypper search krb Restoring system sources... Parsing metadata for SUSE Linux Enterprise Server 10 SP3... S | Catalog | Type | Name | Version | Arch --+-------------------------------------+---------+--------------------+----------------+------- i | SUSE Linux Enterprise Server 10 SP3 | package | krb5 | 1.4.3-19.43.27 | x86_64 i | SUSE Linux Enterprise Server 10 SP3 | package | krb5-apps-clients | 1.4.3-19.43.27 | x86_64 i | SUSE Linux Enterprise Server 10 SP3 | package | krb5-apps-servers | 1.4.3-19.43.27 | x86_64 i | SUSE Linux Enterprise Server 10 SP3 | package | krb5-client | 1.4.3-19.43.27 | x86_64 i | SUSE Linux Enterprise Server 10 SP3 | package | krb5-devel | 1.4.3-19.43.27 | x86_64 i | SUSE Linux Enterprise Server 10 SP3 | package | krb5-server | 1.4.3-19.43.27 | x86_64 

KVNO是密钥表的版本号,每当你生成一个新的密钥表或者密码被改变时, KVNO得到递增。 该数字应该与Active Directory内部的数字相匹配。 此错误表示keytab包含主人认为已过期的条目。

您可以使用adsiedit.msc在目录中看到KVNO 。 在适当的用户下查找msDS-KeyVersionNumber属性; 通常它应该与keytab相同。 (在你的情况6)