创建 keytab 文件

您可以创建一个用户账户以在多个中央节点服务器上进行身份验证。服务主体名称 (SPN) 为此,您必须创建一个keytab 文件,其中包含每个服务器的服务主体名称(以下也称为 SPN)。创建 keytab 文件时,必须使用属性来生成salt(哈希函数输入修饰符)。

生成的 salt 必须以任何方便的方式保存,以便将来向 keytab 文件添加更多 SPN。

您还可以为要为其设置 Kerberos 身份验证的每个中央节点服务器创建单独的 Active Directory 用户账户。

要使用一个用户账户创建 keytab 文件:

  1. 在域控制器上的Active Directory 用户和计算机管理单元中,创建一个用户账户(例如,使用control-user作为其名称)。
  2. 如果要使用 AES256-SHA1 加密算法,请在Active Directory 用户和计算机管理单元中:
    1. 打开您创建的用户账户的属性。
    2. 账户选项卡上,选择此账户支持 Kerberos AES 256 位加密复选框。
  3. 使用 ktpass 实用程序为控制用户创建 keytab 文件。为此,请在命令行中运行以下命令:

    C:\Windows\system32\ktpass.exe -princ HTTP/<中央节点服务器的完全限定域名 (FQDN)>@<大写的 Active Directory 域的领域名称> -mapuser control-user@<大写的 Active Directory 域的领域名称> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * +dumpsalt -out <文件路径>\<文件名>.keytab

    该实用程序在执行命令时请求control-user密码。

    所选服务器的 SPN 将被添加到创建的 keytab 文件中。生成的盐显示在屏幕上:使用盐“<哈希值>”对密码进行哈希处理。

  4. 将每个后续中央节点服务器的 SPN 记录添加到 keytab 文件中。为此,请运行以下命令:

    C:\Windows\system32\ktpass.exe -princ HTTP/<中央节点服务器的完全限定域名 (FQDN)>@<大写的 Active Directory 域的领域名称> -mapuser control-user@<大写的 Active Directory 域的领域名称> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -in <先前创建的文件的路径和名称>.keytab -out <路径和新名称>.keytab -setupn -setpass -rawsalt "<在第 3 步创建 keytab文件时获得的盐的哈希值>"

    该实用程序在执行命令时请求control-user密码。

keytab 文件已创建。此文件包含所选服务器的所有添加的 SPN。

示例:

例如,您需要创建一个包含 3 个服务器的 SPN 名称的 keytab 文件:control-01.test.localsecondary-01.test.localsecondary-02.test.local

要在 C:\keytabs\ 中创建包含服务器的 SPN 的filename1.keytab文件,请运行以下命令:

C:\Windows\system32\ktpass.exe -princ HTTP/control-01.test.local@TEST.LOCAL -mapuser control-user@TEST.LOCAL -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * +dumpsalt -out C:\keytabs\filename1.keytab

假设您有“TEST.LOCALHTTPcontrol-01.test.local”作为盐。

要添加另一个 SPN,请运行以下命令:

C:\Windows\system32\ktpass.exe -princ HTTP/secondary-01.test.local@TEST.LOCAL -mapuser control-user@TEST.LOCAL -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -in C:\keytabs\filename1.keytab -out C:\keytabs\filename2.keytab -setupn -setpass -rawsalt "TEST.LOCALHTTPcontrol-01.test.local"

要添加第三个 SPN:

C:\Windows\system32\ktpass.exe -princ HTTP/secondary-02.test.local@TEST.LOCAL -mapuser control-user@TEST.LOCAL -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -in C:\keytabs\filename2.keytab -out C:\keytabs\filename3.keytab -setupn -setpass -rawsalt "TEST.LOCALHTTPcontrol-01.test.local"

这将创建一个filename3.keytab文件,其中包含所有三个添加的 SPN。

要使用每个中央节点服务器的单独账户创建 keytab 文件:

  1. 在域控制器服务器上的Active Directory 用户和计算机管理单元中,为每台服务器创建单独的用户账户(例如,control-usersecondary1-usersecondary2-user等)。
  2. 如果要使用 AES256-SHA1 加密算法,请在Active Directory 用户和计算机管理单元中:
    1. 打开您创建的用户账户的属性。
    2. 账户选项卡上,选择此账户支持 Kerberos AES 256 位加密复选框。
  3. 使用 ktpass 实用程序为控制用户创建 keytab 文件。为此,请在命令行中运行以下命令:

    C:\Windows\system32\ktpass.exe -princ HTTP/<中央节点服务器的完全限定域名 (FQDN)>@<大写的 Active Directory 域的领域名称> -mapuser control-user@<大写的 Active Directory 域的领域名称> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -out <文件路径>\<文件名>.keytab

    该实用程序在执行命令时请求control-user密码。

    所选服务器的 SPN 将被添加到创建的 keytab 文件中。

  4. 将每个后续中央节点服务器的 SPN 记录添加到 keytab 文件中。为此,请运行以下命令:

    C:\Windows\system32\ktpass.exe -princ HTTP/<中央节点服务器的完全限定域名 (FQDN)>@<大写的 Active Directory 域的领域名称> -mapuser secondary1-user@<大写的 Active Directory 域的领域名称> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -in <先前创建的文件的路径和名称>.keytab -out <路径和新名称>.keytab

    该实用程序在执行命令时请求secondary1-user密码。

keytab 文件已创建。此文件包含所选服务器的所有添加的 SPN。

示例:

例如,您需要创建一个包含 3 个服务器的 SPN 名称的 keytab 文件:control-01.test.localsecondary-01.test.localsecondary-02.test.local

要在 C:\keytabs\ 中创建包含服务器的 SPN 的filename1.keytab文件,请运行以下命令:

C:\Windows\system32\ktpass.exe -princ HTTP/control-01.test.local@TEST.LOCAL -mapuser control-user@TEST.LOCAL -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -out C:\keytabs\filename1.keytab

要添加另一个 SPN,请运行以下命令:

C:\Windows\system32\ktpass.exe -princ HTTP/secondary-01.test.local@TEST.LOCAL -mapuser secondary1-user@TEST.LOCAL -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -in C:\keytabs\filename1.keytab -out C:\keytabs\filename2.keytab

要添加第三个 SPN:

C:\Windows\system32\ktpass.exe -princ HTTP/secondary-02.test.local@TEST.LOCAL -mapuser secondary2-user@TEST.LOCAL -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -in C:\keytabs\filename2.keytab -out C:\keytabs\filename3.keytab

这将创建一个filename3.keytab文件,其中包含所有三个添加的 SPN。

页面顶部