在微软域内,构筑企业证书服务,为了提高安全性和便利性以及定制证书的申请策略,可以通过本机的certmgr.msc打开管理界面,申请连接到域的证书服务,进行域的关联证书的申请以及更新。而不是通过一般的web界面申请。

  如果在一个没有防火墙的网络环境内,没有什么使用上的不便。

  但是域证书服务的端口是动态形成的,在通过防火墙就成问题了,微软的ISA以及以后的版本Forefront TMG ,可以监视动态端口,但是其它厂家的防火墙就不行了。

  要解决这个问题,就只能在服务器上解决。

  要修改,首先需要解决注册表某个键值的权限问题。

  打开注册表

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID\{D99E6E74-FC88-11D0-B498-00A0C90312F3}

对该键值进行修改,打开该键的属性,我们虽然可以看见管理员组是有full权的,但是,这样不行,后续修改的时候,无法生效,它的所有者是system,把该键的所有者该成管理员才行。

然后启动dcomcnfg.exe,打开Component Services,电脑,我的电脑,DCOM构成,CertSrv Request,打开它的属性,选择Endpoint页,点击追加,选择静态endpoint,后面的空白处填写需要指定的端口号。然后关闭所有的控制界面。

重启证书服务。用命令行也行, 

net stop certsvc
net start certsvc

这里要着重说一点,如果使用netstat查看证书服务的端口,似乎并没有生效,没有变成自己指定的。本人也被迷惑了很久,其实完全不必管它,一旦有一个用户申请进来,再用netstat查看端口,这时候,就变成了自己指定的端口了。我又接着做了测试,重启了证书服务,发现它又变了,不在是我指定的端口了,那么只有等下一个申请者了。

其实我研究发现,用dcomcnfg.exe去修改的内容,其实是反应在注册表里面的,就是在需要修改的键下面,添加了一个文字列值,名字为EndPoints,种类为:REG_MULTI_SZ,内容为:ncacn_ip_tcp,0,12345  最后的12345就是需要指定的端口号。