Đây là quá trình tôi đã sử dụng trên Windows 2012 R2 trở lên. Tất cả mã PowerShell đã được chạy từ dấu nhắc PowerShell nâng cao. Hoàn toàn tự động hóa là một bài tập cho người dùng.
Điều kiện tiên quyết
Đảm bảo rằng bạn có Mẫu trên Máy chủ Chứng chỉ có nút radio "Cung cấp trong yêu cầu" được chọn trong tab Chủ đề. Vì đây không phải là máy AD, nên máy chủ chứng chỉ không thể truy vấn đầy đủ Active Directory để biết thông tin.
Xuất gốc
Xuất chứng chỉ xác thực gốc đáng tin cậy trên máy chủ chứng chỉ của bạn và sau đó sao chép tệp chứng chỉ đó vào máy chủ mục tiêu của bạn
certutil --% -ca.cert <name of certificate file>
Tin tưởng vào Root
Nhập chứng chỉ đó cho Cơ quan chứng nhận gốc đáng tin cậy trên máy chủ mục tiêu của bạn
$PathToCertificate=<name of certificate file>
$RootCertificate=Get-PfxCertificate -FilePath $PathToCertificate
$AlreadyExists=Get-ChildItem -Path "Cert:\LocalMachine\Root" | Where-Object { $_.Thumbprint -eq $RootCertificate.Thumbprint }
if ($AlreadyExists -eq $null) { Import-Certificate -CertStoreLocation "Cert:\LocalMachine\Root" -FilePath $PathToCertificate }
else { Write-Warning "Root certificate already installed" }
Nhà cung cấp chính sách Active Directory
Xác định URL cho Nhà cung cấp chính sách Active Directory
# Get AD Configuration Context
$RootDSE=[System.DirectoryServices.DirectoryEntry]::new("LDAP://RootDSE")
$ConfigContext="CN=Enrollment Services,CN=Public Key Services,CN=Services,"+$RootDSE.configurationNamingContext
# Get name of Enterprise Root Certificate Autority server
$Server=Get-ADObject -SearchBase $ConfigContext -Filter "*"
if ($Server.Count -eq 1) { throw "No Enterprise Root Certificate Autority server exists" }
else { $Server=$Server[1].Name }
# Get Enrollment URL
$ConfigContext="CN=$Server,"+$ConfigContext
$EnrollmentURL=(Get-ADObject -SearchBase $ConfigContext -Filter "*" -Properties "msPKI-Enrollment-Servers" | Select-Object -ExpandProperty "msPKI-Enrollment-Servers").Split("`n") | Where-Object { $_ -like "http*" }
if ($EnrollmentURL -eq $null) { $EnrollmentURL="" }
# Get AD Enrollment Policy URL
$Server=$Server+$RootDSE.configurationNamingContext.Value.Replace("CN=Configuration","").Replace(",DC=",".")
$WMI=Get-WmiObject -ComputerName $Server -Namespace "root\WebAdministration" -Class Application | Where-Object { $_.Path -eq "/ADPolicyProvider_CEP_UsernamePassword" }
if ($WMI -ne $null) { $PolicyURL="https://"+$Server+$WMI.Path+"/service.svc/CEP" }
else { $PolicyURL="" }
Write-Output "Enrollment URL = $EnrollmentURL"
Write-Output "Policy URL = $PolicyURL"
Chính sách tuyển sinh
Thêm Chính sách đăng ký vào Máy chủ mục tiêu (Điều này chỉ hoạt động trên Windows 2012 trở lên. Để biết hướng dẫn về GUI, xem bên dưới). Đảm bảo rằng Chính sách được thêm sau khi bạn tạo mẫu không thuộc miền, nếu không, chính sách sẽ không xuất hiện vì chính sách không được làm mới.
$User="<your domain name>\<your domain user name>"
$Pass="<Your domain password>"
$SecPass=ConvertTo-SecureString -String $Pass -AsPlainText -Force
$Cred=[System.Management.Automation.PSCredential]::new($User,$SecPass)
Add-CertificateEnrollmentPolicyServer -Url $PolicyURL -context Machine -NoClobber -AutoEnrollmentEnabled -Credential $Cred
Nhận chứng chỉ
Bây giờ bạn có thể đăng ký chứng chỉ bằng mẫu mong muốn
$DNS="<FQDN of your server>"
$URL=Get-CertificateEnrollmentPolicyServer -Scope All -Context Machine | Select-Object -ExpandProperty Url | Select-Object -ExpandProperty AbsoluteUri
$Enrollment=Get-Certificate -Url $URL -Template "<Template name (not display name)>" -SubjectName "CN=$DNS" -DnsName $DNS -Credential $Cred -CertStoreLocation cert:\LocalMachine\My
$Enrollment.Certificate.FriendlyName=$DNS
Chính sách tuyển sinh Pre-Windows 2012 R2
- Mở chứng chỉ MMC
- Đi sâu vào Cửa hàng Chứng chỉ Cá nhân
- Nhấp chuột phải vào "Chứng chỉ" và chọn tất cả Nhiệm vụ / Hoạt động nâng cao / Quản lý
- Chính sách tuyển sinh từ menu ngữ cảnh
- Nhấp vào nút "Thêm"
- Dán URL cho chính sách đăng ký
- Chọn Tên người dùng / mật khẩu làm loại Xác thực
- Nhấp vào nút "Xác thực máy chủ" và nhập thông tin xác thực tên miền của bạn, bao gồm tên miền
- Giả sử bạn đã có thể xác thực thành công, hãy nhấp vào nút "Thêm"
- Chọn chính sách đăng ký và nhấp vào nút "Thuộc tính"
- Đảm bảo rằng hộp "Bật để đăng ký và gia hạn tự động" được chọn
- Tôi chưa bao giờ kiểm tra "Yêu cầu xác nhận mạnh mẽ trong khi đăng ký" vì vậy tôi không biết nó làm gì