内网安全之搭建ADCS证书服务

在域控上安装ADCS服务时,默认会自动配置完LDAPS,如果不是在域控上安装ADCS服务,需要手动配置LDAPS

安装证书服务ADCS

打开服务器管理器——>添加角色和功能
image.png
选择“基于角色或基于功能的安装”选项,然后点击下一步
image.png
选择“从服务器池中选择服务器”选项,然后点击下一步
image.png
这里勾选“Active Directory 证书服务”选项,然后点击下一步
image.png
这里到了选择功能的对话框,保持默认即可,然后点击下一步。
image.png
这里显示 Active Directory 域服务的描述以及注意事项,然后点击下一步。
image.png
这里勾选“证书颁发机构”选项,如果想要允许 Web 端注册证书的话,也可以勾选 “证书颁发机构 Web 注册”。
image.png
ADCS 支持 6 种角色服务:

  • 证书颁发机构:该组件的主要目的是办理证书、撤销证书以及发布授权信息 访问(AIA)和撤销信息。
  • 联机响应程序:可以使用该组件来配置和管理在线证书状态协议(OSCP)验证和吊销检查。在线响应程序解码特定证书的吊销状态请求,评估这些证书的状态,并返回具有请求的证书状态信息的签名响应。
  • 网络设备注册服务(NDES):通过该组件,路由器、交互机和其他网络设备 可从 ADCS 获取证书
  • 证书颁发机构 Web 注册:该组件提供了一种用户使用未加入域或运行 Windows 以外操作系统的设备的情况下颁发和续订证书的方法。
  • 证书注册 Web 服务(CES):该组件用于运行 Windows 的计算机和 CA 之间的代理客户端。CES 使用户、计算机或应用程序能够通过使用 Web 服务连接到 CA:
    • 请求、更新和安装办法的证书
    • 检索证书吊销列表(CRL)
    • 下载根证书
    • 通过互联网或跨森林注册
    • 为属于不受信任的 ADDS 域或未加入域的计算机自动续订证书
  • 证书注册策略 Web 服务:该组件使用户能够获取证书注册策略信息。结合 CES,它可以在用户设备未加入域或无法连接到域控的场景下实现基于策略的证书服务

这里 Web 服务器角色(IIS)描述以及注意事项,然后点击下一步
image.png
显示选择角色服务,保持默认即可,然后点击下一步
image.png
这里到了确认安装所选内容对话框,勾选“如果需要,自动重新启动目标服务器” 选项,然后点击安装。
image.png

配置ADCS

接下来就需要配置 ADCS 证书服务了,点击“配置目标服务器上的 ActiveDirectory 证书服务”。
image.png
会弹出指定凭据以配置角色服务对话框,这里我们保持默认,然后点击下一步。
image.png
勾选“证书颁发机构”和“证书颁发机构 Web 注册”,然后点击下一步
image.png
勾选“企业 CA(E)”,然后点击下一步
image.png
勾选“根 CA®”,然后点击下一步
image.png
勾选“创建新的私钥®”,然后点击下一步
image.png
指定加密选项,我们保持默认即可,然后点击下一步
image.png
指定 CA 名称,我们保持默认即可,然后点击下一步
image.png
有效期我们保持默认即可,然后点击下一步
image.png
CA 数据库的存储位置,我们保持默认即可,然后点击下一步
image.png
然后确认以下信息是否有误,无误的话,点击配置
image.png
配置完成
image.png

申请证书

在域控上执行 certlm.msc 命令,申请一个模板为域控制器的证书即可。
image.png
image.png
这时可以看到我们为域控申请的证书
image.png
我们使用ldp进行连接,可以看到连接失败
image.png

这时我们查看受信任的根证书颁发机构有没有我们想要的证书,可以看到并没有,所以我们需要导入证书
image.png
在 CA 服务器上执行 certlm.msc 命令,查看受信任的根本书颁发机构,然后将 CA 证书导出。然后将导出的 CA 证书导入到域控的受信任的根本书颁发机构即可。
image.png
image.png
image.png
导入成功后,使用ldp即可连接成功
image.png

### 集成 CA 到 C2F 的方法 在 C2F(假设这是一个网络服务框架或平台)中集成 CA 功能,可以通过构建内部 PKI 基础设施来实现。以下是具体的技术细节: #### 1. **PKI 架构设计** - 在企业内网环境中搭建 CA 服务器作为核心组件[^1]。 - 使用开源工具如 OpenSSL 或商业解决方案(例如 Microsoft Active Directory Certificate Services, ADCS),创建根 CA 和中间 CA。 #### 2. **证书生命周期管理** - **生成 CSR 请求** 用户通过 C2F 提供的接口提交证书签名请求 (CSR),其中包含必要的信息(如域名、组织名等)。这可以通过 API 调用完成。 - **CA 签署证书** 将收到的 CSR 文件传递到 CA 进行验证并签署,最终返回给用户一个有效的 X.509 数字证书。 #### 3. **技术实现方式** ##### (1)使用 OpenSSl 创建自签名 Root CA ```bash openssl genpkey -algorithm RSA -out root_ca.key.pem -aes256 openssl req -new -x509 -days 7300 -key root_ca.key.pem -sha256 -extensions v3_ca -out root_ca.crt.pem ``` ##### (2)配置中间 CA 并设置权限控制策略 - 定义 CAB 条款以限制子级 CA 的功能范围。 - 设置密钥用途扩展字段,指定该证书仅用于特定目的(如客户端身份验证或邮件保护)。 ##### (3)开发 RESTful 接口支持动态申请与撤销流程 利用编程语言(Python/Go 等)编写 Web Service 层面逻辑处理来自前端界面或者第三方系统的调用需求。 ```python from flask import Flask, request, jsonify import subprocess app = Flask(__name__) @app.route('/request_cert', methods=['POST']) def cert_request(): data = request.json domain_name = data['domain'] # Generate private key and CSR csr_cmd = f'openssl req -new -nodes -keyout {domain_name}.key -out {domain_name}.csr ...' result = subprocess.run(csr_cmd.split(), capture_output=True) if result.returncode != 0: return {"error": "Failed to generate CSR"}, 500 ca_sign_cmd = '...' # Command for signing with the CA sign_result = subprocess.run(ca_sign_cmd.split(), capture_output=True) if sign_result.returncode == 0: return send_file(f'{domain_name}.crt') else: return {"error": "Signing failed"}, 500 if __name__ == '__main__': app.run() ``` #### 4. **安全性考量** 确保整个过程中涉及的所有敏感数据都经过妥善保管,并采用强密码学机制进行防护;定期更新过期凭证以防潜在风险发生[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值