自动为客户端安装根证书

        为了保障网络传输安全,许多信息敏感的网站都采用了SSL验证方式,这样客户端需要对服务器端发送的证书进行信任才可以访问站点,但是如果要彻底信任此证书,不用每次都先跑到警告页面以及弹出信任对话框,就必须信任此证书的根证书~ 

        但是在客户端安装根证书在部署上存在很大的困难,那么怎么样能作到在网站上自动为用户安装呢?这里我参考了www.ca365.com(中国数字认证网)的做法,正入初次访问此网站,会弹出一个对话框问你是否要安装这个根证书(silent执行好象不太可能,安全上也不允许),那么我们也要实现这种方式。

       那么怎么样实现呢?从这个网站我们唯一可以得到的信息是可以通过XEroll组件来进行注册证书,如: 

< OBJECT  classid =clsid:127698e4-e730-4e5c-a2b1-21490a70c8a1  codebase ="xenrlinf.cab#Version=5,131,3659,0"  id =XEnroll  name =XEnroll  VIEWASTEXT ></ OBJECT >

 

sPKCS7 = ""

sPKCS7
= sPKCS7  &   " -----BEGIN CERTIFICATE----- "   &  vbNewLine
sPKCS7
= sPKCS7  &   " MIIDszCCApugAwIBAgIIPn9KwWPUprMwDQYJKoZIhvcNAQEFBQAwZzELMAkGA1UE "   &  vbNewLine
sPKCS7
= sPKCS7  &   " BhMCQ04xEDAOBgNVBAgTB0JlaWppbmcxEDAOBgNVBAcTB0JlaWppbmcxDjAMBgNV "   &  vbNewLine
sPKCS7
= sPKCS7  &   " BAoTBUNBMzY1MSQwIgYDVQQDExtDQTM2NSBUZXN0IFJvb3QgQ2VydGlmaWNhdGUw "   &  vbNewLine
sPKCS7
= sPKCS7  &   " HhcNMDEwNTEyMDg0MDIwWhcNMzEwNTA1MDg0MDIwWjBnMQswCQYDVQQGEwJDTjEQ "   &  vbNewLine
sPKCS7
= sPKCS7  &   " MA4GA1UECBMHQmVpamluZzEQMA4GA1UEBxMHQmVpamluZzEOMAwGA1UEChMFQ0Ez "   &  vbNewLine
sPKCS7
= sPKCS7  &   " NjUxJDAiBgNVBAMTG0NBMzY1IFRlc3QgUm9vdCBDZXJ0aWZpY2F0ZTCCASIwDQYJ "   &  vbNewLine
sPKCS7
= sPKCS7  &   " KoZIhvcNAQEBBQADggEPADCCAQoCggEBAL7TIQ00d7mYx9CNOvGJDCTm+yFK5rM3 "   &  vbNewLine
sPKCS7
= sPKCS7  &   " tH3Om5e9eQtt290t3TJoMEm78SNi7rVl/tgPtR3IEznL8C9NREeyG48Mlh3RLkCH "   &  vbNewLine
sPKCS7
= sPKCS7  &   " 9YVvwqoz5dPU8OSiV4KMwuaAk0NxEWal3jtDN2yNZiNrqjXeYWdkIvYE8jEYSXVD "   &  vbNewLine
sPKCS7
= sPKCS7  &   " GB748oBMhrXR8mN5QyYPJ/yuXTK4vkrgOdn+DA46NECpFNpj97AgdmsjU1oEx/WF "   &  vbNewLine
sPKCS7
= sPKCS7  &   " xSDrwQv5JwpVkNO4hlUqvU2HkSwJiYibWTHiuq/WX2KZRiGBbQsMUlBKT/SGTz0x "   &  vbNewLine
sPKCS7
= sPKCS7  &   " kTBciXzkTN4kd0nHcYcbhRyNCj3S9tLjZuU4KmO8aYq+3uw7MzuIqaUCAwEAAaNj "   &  vbNewLine
sPKCS7
= sPKCS7  &   " MGEwHQYDVR0OBBYEFOFerZs5arMIYGXkIn7sz8xPsdHLMA4GA1UdDwEB/wQEAwIB "   &  vbNewLine
sPKCS7
= sPKCS7  &   " BjAfBgNVHREEGDAWhhRodHRwOi8vd3d3LmNhMzY1LmNvbTAPBgNVHRMBAf8EBTAD "   &  vbNewLine
sPKCS7
= sPKCS7  &   " AQH/MA0GCSqGSIb3DQEBBQUAA4IBAQB5tTmySgq4J50bWoz+F7pZL75U0X4IPmQ+ "   &  vbNewLine
sPKCS7
= sPKCS7  &   " wXaUr8M7PthCMMIv/CN9mLbWK8fEXO8cEMkpusgSbSZybJpNggeLuyu+9iZcJnsZ "   &  vbNewLine
sPKCS7
= sPKCS7  &   " TOXs7JnG0D91N0m/y/8Q794XsG64X2MRKBAMEyv/l0oR2fYym9iOkCJtv5rkMYWG "   &  vbNewLine
sPKCS7
= sPKCS7  &   " jYplLrJWsEooFOrn4CzWkJ3lYuuc+WdlXEsPfLedPB5xAl1PU8FSjxvwEczOdWWK "   &  vbNewLine
sPKCS7
= sPKCS7  &   " 99YMbVaQDMPSeVLKwxWeLtcZ10leyCotGpPaLLwcUEWiTyVt0mPZ+NQEqpm3nApp "   &  vbNewLine
sPKCS7
= sPKCS7  &   " BeRFkRLtHm1+BF8piiZ/89ToczDZBx87TM2KqqUolQ4usKzB+P/r "   &  vbNewLine
sPKCS7
= sPKCS7  &   " -----END CERTIFICATE----- "   &  vbNewLine
' 安装
XEnroll.InstallPKCS7Ex(sPKCS7)

但是怎么样得到sPKCS7呢?我们知道,证书服务器上有个站点叫做CertSrv我们可以访问它,

原来这里也实现了自动注册的功能,所不同的是这里你还需要点下这个link。赶紧吧,找到它的原代码,解剖下吧~

原来它使用了ICertRequest对象(我们可以从system32目录下面找到对应的certcli.dll)

Public  sPKCS7
Dim  sCertificate
sCertificate
= ICertRequest.GetCACertificate(GETCERT_CASIGCERT, sServerConfig, CR_OUT_BASE64_HEADER  Or  CR_OUT_CHAIN)
sPKCS7
= FormatBigString(sCertificate,  "     sPKCS7=sPKCS7 &  " )

一些参数:

Const  GETCERT_CAXCHGCERT = 1
Const  CR_OUT_BASE64HEADER =& H00000000
Const  CR_OUT_CHAIN        =& H00000100

sServerConfig = myservername/certserver

myservername就是你的证书服务器机器名

certserver就是你的证书服务的名字,如下图:

如果想在.Net中 用这个DLL不要忘了先注册哦,否则引用不了的。

其实根证书不会随意变化,一般只需要一次性得到PKCS7就好了,所以大家可以通过下面这个工具得到他:

http://dl2.csdn.net/down3/20070626/26140955280.rar,基于.net framework 2.0

有什么问题不清楚可以提出来,谢谢。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: kpeserver 是一个开源的服务器软件,它用于管理和远程控制计算机设备。在安装 kpeserver 时,需要使用证书来确保安全性和数据的保护。 证书是一种数字证书,用于验证和识别其他证书的可信性。它是一个由可信的证书颁发机构(CA)签发的顶级证书,具有最高的信任级别。在 kpeserver 安装过程中,使用证书可以确保服务器软件的身份和数据的完整性。 首先,确保你已获得一个可信的证书。通常,证书可以从证书颁发机构或可信的第三方渠道获得。 然后,将证书导入到 kpeserver 的安装路径中。可以在软件安装目录中找到一个名为 "certs" 或 "certificates" 的文件夹,将证书文件放入其中。 接下来,启动 kpeserver,并在其配置文件中的相关选项中指定证书的路径。通常,这些选项包括证书路径、证书密码等。确保正确填写了证书的相关信息。 最后,保存配置文件并重启 kpeserver。服务器软件将会读取证书,并在与客户端建立连接时进行身份验证和加密通信。 通过使用证书,kpeserver 可以确保安全地管理和远程控制计算机设备。在与客户端通信时,证书的使用可以防止数据被篡改和窃听,同时确保连接的可信性和安全性。所以,在安装 kpeserver 时,证书是必不可少的。 ### 回答2: kpeserver是一种用于安装和管理密钥和证书服务器软件。在安装kpeserver之前,确实需要证书证书是一种数字证书,用于签发和管理其他证书。它是整个证书链中最高级别的证书,由数字证书认证机构(CA)签署和颁发。证书可以用于验证其他证书的有效性,它的安全性对整个证书体系非常重要。 在安装kpeserver之前,我们需要获得一个可信的证书。一般情况下,证书可以从数字证书认证机构(CA)获得,像是Symantec或Let's Encrypt。我们需要向CA提出申请,他们会对我们的身份和目的进行验证,并颁发一个带有相关信息的证书。 获得证书后,我们可以将其应用于kpeserver的安装过程。具体的安装步骤可能会依赖于使用的操作系统和版本。在安装过程中,我们可能需要指定证书的位置和相关信息,以确保kpeserver能够正确地使用证书来验证其他证书的有效性。 总而言之,kpeserver安装过程需要证书来确保安全性和有效性。证书是整个证书链中最高级别的证书,可以通过数字证书认证机构获得。在安装时,我们需要将证书应用到kpeserver中,以便进行证书管理和密钥操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值