首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为非域连接计算机颁发windows计算机证书?

如何为非域连接计算机颁发windows计算机证书?
EN

Server Fault用户
提问于 2019-05-15 16:33:32
回答 2查看 19.7K关注 0票数 2

我有一个Windows 2012 AD/CA和域连接的计算机自动接收CA公共证书,并获得一个计算机证书生成和推送使用GPO自动注册。所有这些都用于802.1X,工作正常。

事实证明这是相当困难的。我遇到过文章,其中描述了实现这一目标的两种方法:

选项1

从已加入计算机的域导出证书。我已经进行了测试,这是可行的,但正如在那篇文章中所解释的,缺点是所有非域连接的计算机都将共享相同的证书。

选项2(首选)

  1. 在AD中创建一个帐户
  2. 从允许导出私钥的模板中发出证书
  3. 使用名称映射,将证书附加到帐户。
  4. 创建一个与证书上的SAN匹配的SPN。如果SAN是computer.domain.com,则需要在帐户主机/Computer.domain.com上创建一个SPN。
  5. 在目标工作站/设备上安装证书
  6. 创建计算机AD帐户
  7. 为添加SAN:UPN=$@的非域计算机颁发计算机证书
  8. 在客户端上安装计算机证书

您可以通过使用带有SAN:UPN=$@格式的证书中的SAN条目,使硬选项变得更容易,并减少几个步骤。这将导致在SAN字段中具有NT主名称$@的证书,然后适合作为纯计算机对象对NPS进行身份验证。然后,唯一的依赖项是在Active中创建计算机帐户,并将其添加到AuthZ的相应组中。

我已经用主机名Computer创建了一个win10test AD帐户,但是我不知道如何生成证书,以及如何将SAN:UPN=$@添加到证书中。

是否需要在非域计算机上创建CSR?

请有人详细说明从MS论坛帖子。谢谢。

更新

我创建了一个csr request.inf,如下所示:

代码语言:javascript
复制
[NewRequest]
Subject="CN=win10test"
KeyLength=2048
KeySpec=1
MachineKeySet=TRUE
SMIME = FALSE

[RequestAttributes]
CertificateTemplate="NonDomainWorkstations"
SAN="upn=win10test@test.local"

然后我将其复制到CA并提交请求。我不明白为什么。

<#>UPDATE 2

代码语言:javascript
复制
[NewRequest]
Subject="CN=win10test"
KeyLength=2048
KeySpec=1
MachineKeySet=TRUE
SMIME = FALSE

[Extensions]
2.5.29.17 = "{text}"
_continue_ = "upn=win10test@test.local"

[RequestAttributes]
CertificateTemplate="NonDomainWorkstations"

仍然存在的问题是,上面的证书似乎与win10test AD计算机帐户无关。

UPDATE 3

  1. 创建AD计算机帐户win10test
  2. dNSHostname修改为win10test.test.local
  3. 使用以下request.inf在win10test上创建CSR:
代码语言:javascript
复制
[NewRequest]
Subject="CN=win10test"
KeyLength=2048
KeySpec=1
MachineKeySet=TRUE
SMIME = FALSE

[Extensions]
2.5.29.17 = "{text}"
_continue_ = "dns=win10test.test.local"

[RequestAttributes]
CertificateTemplate="NonDomainWorkstations"
  1. certreq -new request.inf win10test.req上运行win10test
  2. 将win10test.req复制到CA服务器并提交请求
  3. 将win10test.cer复制到win10test并安装到本地计算机。

不能采用802.1x标准。获取NPS中的以下错误:

代码语言:javascript
复制
Event 6273
host/win10test.test.local
TEST
TEST\host/win10test.test.local

The specified user account does not exist. 
EN

回答 2

Server Fault用户

发布于 2019-05-15 17:18:28

建议的解决方案都不是好办法。

如果只有一台或极少数的工作组计算机(它们不是AD森林的一部分),那么手动注册和更新客户端证书可能是合理的:

  1. 在工作组计算机上生成CSR (证书请求)
  2. 将CSR复制到CA (或管理PC)并向CA提交请求
  3. 签发签名证书并将其复制回客户端。
  4. 在客户端上安装证书。

如果工作组的数量相对较多,则可以投资于ADCS服务。以下是AskDS博客上的简化版本:启用CEP和CES以注册非域连接的计算机以获取证书

票数 0
EN

Server Fault用户

发布于 2020-05-14 15:01:11

我根据@Crypt32 32的答案中的第二个链接回答了一个类似于此的ServerFault问题。

我不知道这个答案是否满足OP的要求,因为看起来他们的目标是使用certutil/certreq实用程序手动创建证书请求。如果您有Active Directory,并且可以通过非域连接的计算机通过网络访问它,则IMO 这个问题提供了最简单的方法。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/967415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档