AD系列:Windows Server 2025 安装AD CS角色和颁发证书

什么是 Active Directory 证书服务?

Active Directory 证书服务 (AD CS) 是一个 Windows Server 角色,负责颁发和管理在安全通信和身份验证协议中使用的公钥基础结构 (PKI) 证书。

颁发和管理证书

数字证书可用于对电子文档和消息进行加密和数字签名,以及对网络上的计算机、用户或设备帐户进行身份验证。 例如,数字证书用于提供:

  • 通过加密提供机密性。

  • 通过数字签名提供完整性。

  • 通过将证书密钥和计算机、用户或计算机网络上的设备帐户关联来进行身份验证。

主要功能

AD CS 提供以下重要功能:

  • 证书颁发机构:根和从属证书颁发机构 (CA) 用于向用户、计算机和服务颁发证书,并管理证书的有效性。

  • 证书颁发机构 Web 注册:Web 注册使用户能够通过 Web 浏览器连接到 CA,以便申请证书和检索证书吊销列表 (CRL)。

  • 联机响应程序:联机响应程序服务可解码对特定证书的吊销状态申请,评估这些证书的状态,并发送回包含所申请证书状态信息的签名响应。

  • 网络设备注册服务:通过此服务,路由器和其他不具有域帐户的网络设备可以获取证书。

  • TPM 密钥证明:通过它,证书颁发机构可验证私钥是否受基于硬件的 TPM 保护以及 TPM 是否受 CA 信任。 TPM 密钥证明可防止证书导出到未经授权的设备,还可将用户标识绑定到设备。

  • 证书注册策略 Web 服务:通过此服务,用户和计算机能够获取证书注册策略信息。

  • 证书注册 Web 服务:通过此服务,用户和计算机能够通过 Web 服务执行证书注册。 与证书注册策略 Web 服务一起使用时,可在客户端计算机不是域成员或域成员未连接到域时实现基于策略的证书注册。

优点

你可以使用 AD CS,通过将个人、计算机或服务的标识与相应的私钥进行绑定来增强安全性。 AD CS 为你提供了一种对证书的分发和使用进行管理的经济、高效和安全的方法。 除了绑定标识和私钥外,AD CS 还包含可用于管理证书注册和吊销的功能。

可以使用 Active Directory 中的现有终结点标识信息来注册证书,这意味着可以将信息自动插入到证书中。 AD CS 还可用于配置 Active Directory 组策略,以指定允许哪些用户和计算机使用哪些类型的证书。 组策略配置可实现基于角色或基于属性的访问控制。

AD CS 支持的应用领域包括安全/多用途 Internet 邮件扩展 (S/MIME)、安全的无线网络、虚拟专用网络 (VPN)、Internet 协议安全 (IPsec)、加密文件系统 (EFS)、智能卡登录、安全套接字层/传输层安全性 (SSL/TLS) 以及数字签名。

其他

如果要部署NPS(网络策略服务器)也需要安装证书服务器才能正常使用。

AD 系列文章:https://songxwn.com/categories/AD/

AD CS 安装前提

  • 登录操作安装的用户必须是域管理员、企业管理员。所以直接使用administrator 比较好。

  • 配置的服务器必须已经加入进域控。

AD CS 正式安装

## powershell 管理员执行Install-WindowsFeature AD-Certificate -IncludeManagementTools # 安装证书服务Add-WindowsFeature Adcs-Cert-Authority -IncludeManagementTools# 安装证书颁发机构功能
## powershell 管理员执行Install-WindowsFeature ADCS-Web-Enrollment -IncludeManagementTools# 安装证书Web服务功能

初始化CA证书和Web服务

初始化CA证书,指定加密算法和过期时间

## powershell 管理员执行Install-AdcsCertificationAuthority -CAType EnterpriseRootCA -HashAlgorithmName SHA256 -ValidityPeriod Years -ValidityPeriodUnits 99

安装和初始化证书Web服务

## powershell 管理员执行Install-AdcsWebEnrollment# 安装角色New-WebBinding -Name "Default Web Site" -Protocol "https"# IIS开启httpsGet-ChildItem -Path Cert:\LocalMachine\My# 获取证书指纹,找到和主机名对应的证书,复制前面的指纹。(Get-WebBinding -Name "Default Web Site" -Port 443 -Protocol "https").AddSslCertificate("7AE5AB7D969B8A37D6436B2FF926D8B0859D6E54", "my")# IIS绑定证书

Web申请证书

访问 https://localhost/certsrv/Default.asp 进行申请

PS:此界面也可以下载CA根证书进行信任,域控环境下的计算机会自动下发此CA证书。

使用Powershell快速申请cer 格式 Web证书 - 注意域名

## powershell 管理员执行$inf = @"
[Version]
Signature="\$Windows NT$"[NewRequest]
Subject = "CN=www.songxwn.com"
KeySpec = 1
KeyLength = 2048
HashAlgorithm = sha256
KeyAlgorithm = RSA
Exportable = TRUE
RequestType = PKCS10
SMIME = FALSE
KeyUsage = 0xa0[RequestAttributes]
CertificateTemplate = WebServer
"@cd C:\mkdir C:\tempSet-Content -Path "C:\temp\mycert.inf" -Value $inf -Encoding ASCIIcertreq -new    C:\temp\mycert.inf C:\temp\mycert.req
certreq -submit C:\temp\mycert.req C:\temp\mycert.cer
certreq -accept C:\temp\mycert.cer

为域名songxwn.com 申请证书,执行过程会让你选择证书颁发机构,最终输出证书文件为mycert.cer

生成Nginx可用证书

安装openssl

## powershell 管理员执行winget.exe install ShiningLight.OpenSSL.Dev

导出PFX 证书 - 注意域名

## powershell 管理员执行# 设定常量
$Subject = "*CN=www.songxwn.com*"                  # 用你的域名/CN特征替换
$PfxPath = "C:\temp\www.songxwn.com.pfx"           # 用你的域名/CN特征替换
$Password = ConvertTo-SecureString -String "Songxwn.Password123!" -Force -AsPlainText  # 导出密码# 找到指定证书
$cert = Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object { $_.Subject -like $Subject }# 导出到PFX
Export-PfxCertificate -Cert $cert -FilePath $PfxPath -Password $Password

使用openssl 转换证书格式 - 注意域名、路径、密码

## powershell 管理员执行cd "C:\Program Files\OpenSSL-Win64\bin".\openssl.exe pkcs12 -in C:\temp\www.songxwn.com.pfx -nocerts -nodes -out C:\temp\www.songxwn.com.key -password pass:Songxwn.Password123!.\openssl.exe pkcs12 -in C:\temp\www.songxwn.com.pfx -clcerts -nokeys -out C:\temp\www.songxwn.com.crt -password pass:Songxwn.Password123!

以下是用于 IIS、Nginx 等主流Web服务器的常见证书格式及其详细说明,包括各自的文件扩展名、内容结构、适用场景以及如何进行格式转换的方法。希望帮助你理解如何选择和准备正确的证书格式。


证书格式介绍

主要SSL证书文件格式

1. PEM格式(常见于Linux、Nginx、Apache等)

  • 扩展名.pem / .crt / .cer / .key
  • 编码:Base64,ASCII文本
  • 内容:头尾分别有-----BEGIN CERTIFICATE-----/-----END CERTIFICATE-----
  • 包含内容
    • 证书(公钥):-----BEGIN CERTIFICATE-----
    • 私钥:-----BEGIN PRIVATE KEY----------BEGIN RSA PRIVATE KEY-----

常见用法:

  • Nginx、Apache、Tomcat、HAProxy 等服务器,分别要求证书文件和私钥文件。

示例:

-----BEGIN CERTIFICATE-----
MIIRDzCCAiagAwIBAgIQHxQp...
-----END CERTIFICATE-----
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqh...
-----END PRIVATE KEY-----

2. DER格式(常见于Java、Windows)

  • 扩展名.der / .cer
  • 编码:二进制
  • 内容:仅证书,不包含私钥
  • 应用:主要用于Java平台(如Tomcat keystore/JKS导入),或有的Windows/IIS。

用法补充:

  • DER格式常作为证书数量较多或须用二进制格式时使用。

3. PFX/P12格式(IIS/Windows,部分Linux也支持)

  • 全称:PKCS#12
  • 扩展名.pfx / .p12
  • 内容:证书(公钥)+ 私钥 + 可选CA根证书,全部打包在一个文件中,并用密码保护
  • 编码:二进制
  • 典型应用:IIS、Windows Server、Azure、IIS Express、某些支持SSL的Windows应用。

注意事项:

  • 导入PFX时须输入密码(PFX/P12导出时必须指定密码)。

4. P7B/P7C格式(仅含证书,不含私钥)

  • 全称:PKCS#7
  • 扩展名.p7b / .p7c
  • 内容:只含公钥证书签名链,不包含私钥
  • 编码:ASCII(Base64)或二进制
  • 应用场景:CA连带证书链传递,IIS、Java等平台的证书链导入

IIS和Nginx的证书格式要求及部署说明

(1)IIS

  • 推荐格式.pfx (PKCS#12,含私钥)
  • 支持格式:导入向导也支持 .cer / .crt,但必须提前在Windows证书管理器导入私钥
  • 部署说明
    • 在证书向导中引入PFX文件,输入私钥导出密码即可全部配置。
    • 如仅有.cer/.crt则需用“证书管理器—导入”方式。

如何转换为PFX格式:

# 合并已有证书文件和私钥生成pfx
openssl pkcs12 -export -out server.pfx -inkey server.key -in server.crt -certfile chain.crt

(2)Nginx

  • 推荐格式:PEM格式(明文Base64)
    • server.crt :服务器公钥证书
    • server.key :服务器私钥
    • 可选 fullchain.crt:已拼接的主证书+CA证书链
  • 部署说明
    • ssl_certificate (指定公钥或fullchain)
    • ssl_certificate_key (指定私钥)

示例Nginx配置片段:

ssl_certificate     /etc/nginx/ssl/server.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;
# 若有CA证书链,建议如下配置
# 或将链直接拼接写入server.crt

拼接证书链方法(主证书在前,链一路向下拼接):

cat server.crt intermediate.crt root.crt > fullchain.crt

不同格式之间的转换方法

  1. PEM转PFX

    openssl pkcs12 -export -out server.pfx \-inkey server.key -in server.crt -certfile ca_bundle.crt
    
  2. PFX转PEM

    openssl pkcs12 -in server.pfx -out server.pem -nodes
    # 生成带有证书和私钥的pem,自己分离出来
    
  3. PEM转DER

    openssl x509 -in server.crt -outform der -out server.der
    
  4. DER转PEM

    openssl x509 -in server.der -inform der -out server.crt
    
  5. P7B转PEM

    openssl pkcs7 -print_certs -in server.p7b -out server.crt
    

总结表格

文件格式扩展名包含内容PEM/DER编码场景服务器举例 (主要支持)
PEM.crt/.pem/.key/.cer公钥、私钥PEM (Base64)Nginx/Apache等Nginx、Apache、Tomcat等
DER.der/.cer仅证书DER (二进制)Java/IIS/WinJava Keystore、部分Windows/IIS
PFX/P12.pfx/.p12公钥+私钥+CA链DER(二进制)IIS/WindowsIIS、Azure、Windows
P7B/P7C.p7b/.p7c仅公钥证书链PEM/DER证书链传递IIS、Java

微软官方文档

https://learn.microsoft.com/en-us/windows-server/networking/core-network-guide/cncg/server-certs/install-the-certification-authority

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/81276.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/81276.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

kubernetes》》k8s》》Service 、Ingress 区别

K8S>>Service 资料 K8S >>Ingress 资料 Ingress VS Service 物理层数据链路层网络层传输层会话层表示层应用层 Ingress是一种用于暴露HTTP和HTTPS路由的资源,它提供了七层(应用层)的负载均衡功能。Ingress可以根据主机名、…

【java WEB】恢复补充说明

Server 出现javax.servlet.http.HttpServlet", according to the project’s Dynamic Web Module facet version (3.0), was not found on the Java Build Path. 右键项目 > Properties > Project Facets。Dynamic Web Module facet version选4.0即可 还需要在serv…

VMware 创建虚拟机+简易安装Ubuntu的详细操作步骤

VMware 创建虚拟机安装Ubuntu的详细操作步骤 一、创建虚拟机1.1 点击创建新的虚拟机1.2 选择自定义创建虚拟机1.3 选择虚拟机的硬件兼容性1.4 安装客户机操作系统1.5 简易安装信息1.6 命名虚拟机名称1.7 处理器配置1.8 虚拟机内核选择1.9 网络类型1.9 选择I/O 控制器类型1.10 选…

GCC-C语言“自定义段”

一、起因 事情的起因是这样的,在看别人代码时,发现了一种很有意思的写法,因为本人主要是以应用层开发为主,所以对这种写法还是比较少见的,所以研究了一下,就牵扯出了一些知识点,这里先卖个关子,继续往下看。 二、经过 发现了一串这样的代码 static void do_mac(mcmd_…

【信息系统项目管理师-论文真题】2021上半年论文详解(包括解题思路和写作要点)

更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 试题1:论信息系统项目的合同管理1、写作要点2、解题思路项目合同管理的过程项目合同主要的条款内容试题2:论信息系统项目的范围管理1、写作要点2、解题思路项目范围管理的过程核心范围对应的需求跟踪矩阵项目…

python2反编译部分

文章目录 1、所需环境2、确认打包工具(没成功)3、 解包.exe文件(以PyInstaller为例) - useful【***总的来说这一步对我有用】4、定位关键文件 - useful5、 修复.pyc文件头(关键步骤!)- maybe-ig…

基于STM32的中点圆算法,画空心圆的函数

中点圆算法(Midpoint Circle Algorithm)是一种高效绘制圆的算法,它利用圆的对称性和整数运算来避免浮点计算,非常适合嵌入式系统使用。 空心圆绘制函数实现 /*** brief 使用中点圆算法绘制空心圆* param x0: 圆心x坐标* param y0: 圆心y坐标* param…

Android Kotlin 项目完整集成 Bugly 异常监控指南

Android Kotlin 项目集成 Bugly 异常监控完整指南 一、Bugly 简介 Bugly 是腾讯提供的专业移动应用异常监控平台,支持: 崩溃报告(Java/Native)错误分析性能监控热更新功能(需额外配置) 二、集成步骤 1…

【电脑维修】MERCURY水星无线网卡导致 Windows 网络适配器无法连接的一种情况

故障现象 Powershell 无法启动, Terminal 无法启动, CMD 无法启动。 操作1 重新拔插 MERCURY 无线USB网卡,上述各种终端恢复相应。 分析 应该是MERCURY驱动故障导致卡死 操作2 磁盘出现 MERCURY 盘。里面是一个 MERCURY.exe 驱动安装程…

Docker 打上 Tag 和 Push 的意思

在 Docker 中,打 Tag(Tagging) 和 Push(Pushing) 是两个关键操作,用于管理镜像的版本并上传到镜像仓库(如 Docker Hub、阿里云 ACR、Harbor 等)。 1. 打 Tag(Tagging&…

简化excel校验提高开发效率

业务背景:上传excel文件进行基础数据校验,然而东西太多写着写着就...自然成了测试的KPI了 解决思路:使用现有的注解处理,原理使用validate注解原理 直接上干货,一行代码搞定校验: ValidateUtils.validat…

基于Koa实现的服务端渲染 ✅

前段时间刚写完毕业论文,现在一上来就是“基于”,哈哈。🤯 这篇文章持续更新,涉及到的技术栈是Koa、Vue和Vite (用React手搓服务端渲染好麻烦)。但是现在能上生产的服务端渲染估计是Next(配合Re…

Linux运维——Vim基础

Vim基础 一、移动光标1.1、基础移动1.2、屏幕滚动 二、编辑操作2.1、插入模式2.2、删除与修改2.3、复制粘贴 三、搜索与替换3.1、搜索3.2、替换 4、分屏与窗口管理4.1、分屏操作4.2、窗口调整 五、宏与批量操作六、效率技巧七、操作符7.1、内置操作符7.2、操作符 文本对象&…

git操作合集

更新文件 在 Git 中更新已经上传到仓库的文件 1、检查当前状态 首先,打开终端或命令行工具,进入你的 Git 仓库目录(即包含 .git 文件夹的目录)。运行以下命令来查看当前仓库的状态: git status 此命令会显示哪些文…

【笔记】深度学习模型训练的 GPU 内存优化之旅⑤:内存分配篇

开设此专题,目的一是梳理文献,目的二是分享知识。因为笔者读研期间的研究方向是单卡上的显存优化,所以最初思考的专题名称是“显存突围:深度学习模型训练的 GPU 内存优化之旅”,英文缩写是 “MLSys_GPU_Memory_Opt”。…

SQL Server 存储过程开发手册

SQL Server 存储过程开发手册(更新版) 根据要求,重新整理并加入了事务控制、异常日志记录和返回状态码的设计。以下是详细说明: 1. 总则 1.1 目标 本手册旨在为 SQL Server 存储过程的编写提供一套完整的规范,确保系…

深海科技服务博客简介

人人可学,人人可用,IT与AI不是高不可攀! 博客宗旨 深海科技服务博客致力于: 推广IT与AI的实际应用,降低入门门槛,让更多个人和中小企业能够以最少投入、高效实现信息化、智能化。 分享开源免费软件、简单…

本地大模型编程实战(29)查询图数据库NEO4J(2)

上一篇文章 用大语言模型LLM查询图数据库NEO4J(1) 介绍了使用GraphQACypherChain查询NEO4J。用它实现简单快捷,但是不容易定制,在生产环境中可能会面临挑战。 本文将基于langgraph 框架,用LLM(大语言模型)查询图数据库NEO4J。它可以定义清晰复…

RPG_5.角色动画

1.创建一个动画实例 2.创建该实例的c子类 3.继续创建该类的子类,但是作用是用来链接(以后会详细解释) 4.基于PlayerAnimInstance类创建一个子类 5.目前一共创建了四个c类, 最基的类 角色的类 玩家控制的角色的类 玩家控制的角…

Sigmoid函数导数推导详解

Sigmoid函数导数推导详解 在逻辑回归中,Sigmoid函数的导数推导是一个关键步骤,它使得梯度下降算法能够高效地计算。 1. Sigmoid函数定义 首先回顾Sigmoid函数的定义: g ( z ) 1 1 e − z g(z) \frac{1}{1 e^{-z}} g(z)1e−z1​ 2. 导…