根证书的安装 如何安装工行根证书


根证书的安装 如何安装工行根证书

文章插图

我们在日常使用软件和开发系统时 , 可能需要信任某个证书颁发机构(CA).根据之前PKI的最后一公里——数字证书和CA介绍的 , 也就是要将CA的根证书安装在系统的”受信任的根证书颁发机构”里 。今天就介绍一下如何安装 。
一、手工安装
将CA的根证书(cer文件)拷贝到计算机上 , 右键选中——选择”安装证书” , 进入安装向导 。

根证书的安装 如何安装工行根证书

文章插图

选择”下一步” , 弹出选择证书存储位置的对话框 。

根证书的安装 如何安装工行根证书

文章插图

选择”将所有的证书放入下列存储” , 点击”浏览” , 选择”受信任的根证书颁发机构” 。如果需要计算机的所有用户都信任此根证书 , 则应勾选”显示物理存储区” , 选择”受信任的根证书颁发机构”下边的”本地计算机” 。

根证书的安装 如何安装工行根证书

文章插图

继续点击”下一步” 。

根证书的安装 如何安装工行根证书

文章插图

【根证书的安装 如何安装工行根证书】单击”完成” , 等上几秒钟 , 系统会弹出一个安全性警告对话框 , 再一次让你确认是否安装此根证书 。因为安装了它 , Windows就会自动信任该CA颁发的所有证书 。

根证书的安装 如何安装工行根证书

文章插图

到这个地步 , 你肯定是选择”是”了 , 最后一个提示导入成功的对话框就不贴了 。
二、自动安装
虽然手工安装已经足够简单 , 但很多情况下仍需要自动安装根证书 , 尤其是制作安装程序时 , 让小白用户自己手工操作还是比较费神的 。自动安装并不难 , 这里就用到之前介绍的CAPICOM , 示例代码用JS实现 。
// 安装根证书到受信任区域
function injectRootCert() {
var RootCA = “MIIFhDCCA2ygAwIBAgIILatn6sVawOQwDQYJKoZIhvcNAQELBQAwYDELMAkGA1UE” +”BhMCQ04xOTA3BgNVBAoMMEdsb2JhbCBEaWdpdGFsIEN5YmVyc2VjdXJpdHkgQXV0″ +”aG9yaXR5IENvLiwgTHRkLjEWMBQGA1UEAwwNR0RDQSBST09UIENBMTAeFw0xNzA2″ +”MTEwMjM4MDdaFw00MDEyMzExNTU5NTlaMGAxCzAJBgNVBAYTAkNOMTkwNwYDVQQK”
+”DDBHbG9iYWwgRGlnaXRhbCBDeWJlcnNlY3VyaXR5IEF1dGhvcml0eSBDby4sIEx0″ +”ZC4xFjAUBgNVBAMMDUdEQ0EgUk9PVCBDQTEwggIiMA0GCSqGSIb3DQEBAQUAA4IC”
+”DwAwggIKAoICAQCp94/vAI8pCXVZaklbOzgXqGJT/sGhYWBj5Gng1uEk2h9taXsO”
+”Z2+p4SpX6mD+o328btgeW1XO22INZfXw3XzPJBIBWX+JgXPGSBqUlQQCb0sHkxu8″
+”5f/zgXCorOGmUQ1spG+STPn1uOzw/txeTCveB88crh8tSYWgp6TNrtq21vzXNfTz”
+”QALleGezMZzcN8kLjAlxPDafi4nPtws3dFfAw0YsTzk2NaWwtDSZSP3QtPdzSgAw”
+”eUtG53LKwwf9Cq9mpLqiqXrwKIziUyLbuRiaFnTvy3ujf4P1FaGQr63fKtOWtEol” +”kWskqlP9ORjHMyXKwK+qWsLMQJh4jcQTZJsMTUNeZhIRd1Xby6+Vya3XurImAjm5″
+”1WAkoA/eENA0NgfZJuB7kqjaLyVgY0UnrsRBbiQ3JG7JKlemixParsxGTdQZc/UP”
+”AAqdwPCwxfM9VIM7pud8aBhdXAI4oXYv5/s15ml39nHqQhxsfYj52KGJgAlKlNBI”
+”Ir8+goOV94qtRC7drzF23fv5Aksumr5TVRHPeLj4nUU+R2H+DSqbxzHuEWeARrSv”
+”uvCyXHbOlRV5Y6rJuDyUA1YoiCGZv4vjv/jotx0y2C+YcziiRNpwk2g0UxC+rZdL”
+”Haj0Z5Qu9Gn6aN/L4CCFJBDWfqnJ+v7MvsCHvJ66TsLEOFs3FkP0fGIo4QIDAQAB” +”o0IwQDAdBgNVHQ4EFgQUvFm6wKzRW6W6ry8glX5hsF4AxCwwDwYDVR0TAQH/BAUw”
+”AwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQELBQADggIBACKo4QAjIDLn”
+”znJ5szOC/3ck5qhxrkeomF21TwDOwmJpeITVref4TihsD3qr/d0A+ebQR7Utr+5V” +”QLoDFni/GgktxAVnb6y3IGkyMeR49WpspumNskd/7dJVeRWWbo+9bJ0lnz8Ag7JB”
+”r72H01vaJgg7F/hPyt6YsP90E9MWOdv34+wN/fjMOozGUbSVmMKDHWeIpVcKs1U3″
+”Ej33CLzJtCdILCCFKjGo98/mLM/U5IOCJaKtFmUjBhl4h+7gaxt/r1lFkMP/e6/s”
+”3M5UVKMHjQEvyoR2f0oo0q2ZKO9DGvPReQXQ3zgqrQdBfslV2DaSiAP20l+9CL8u”
+”oKqc3TLiKXGhwqJfArALAiLWXWeck7otk3sMLxgEccCAG7GDuJGlDwtHwEJIT/ay”
+”DwtVVmYs3kIUQNsLay9tBjCHT4CTIqzFmVjeo5nsHQksitN3t1R4maOZ+wGlwC0E”
+”LAmsB4Ybt5kTGKQZhmnGjSNJzfEO+m5RNm32Wq/fwX87+wTjtuXAJ4INXD6vyF8S”
+”VFni7dGnSBvu21GSrhPe4Dx3K9shgmnBkYY/IeOOuzVN6W8aWQ+QXRlxiayZYmfI”
+”Et5eVC/x4O6BxBWD4OEQWiuQTpFGjZrS4lv6DjozO0qDmP2HllN/OATZYHRAu47X”
+”eD7ZTwHfQqRQL3G7MUxcHtwTzFUX7WUI”;
// 存储区对象
try {
var store = new ActiveXObject(“CAPICOM.Store”);
} catch (e) {
throw new Error(“无法创建CAPICOM的Store组件: ” + e.message);
}
// 证书对象
try {
var cert = new ActiveXObject(“CAPICOM.Certificate”);
} catch (e) {
throw new Error(“无法创建CAPICOM的Certificate组件: ” + e.message);
}
// 打开windows证书库的受信任根证书存储区
var CAPICOM_CURRENT_USER_STORE = 2;
var CAPICOM_ROOT_STORE = “Root”;
CAPICOM_STORE_OPEN_READ_WRITE = 1;
store.Open(CAPICOM_CURRENT_USER_STORE, CAPICOM_ROOT_STORE, CAPICOM_STORE_OPEN_READ_WRITE);
//证书对象导入根证书的BASE64数据
cert.Import(RootCA);
//将证书加入打开的证书存储区
store.Add(cert);
}
代码也很好懂 , 看注释即可 。如果想针对计算机上的所有用户 , 则store.Open的第一个参数选择2(
CAPICOM_LOCAL_MACHINE_STORE) , 这就相当于手工安装时选择的”本地计算机” 。要说明的是 , 这里导入的是证书的BASE64编码值 , 用记事本打开BASE64 编码的cer文件 , 就可以看到值 。此外 , 执行上述JS代码最后也会弹出对话框询问用户是否安装证书 。但如果用VC/VB等高级语言调用CAPICOM同样的接口 , 设置同样的参数 , 完成证书安装 , 则不会有提示框弹出 。
好了 , 现在你就可以在”受信任的根证书颁发机构”里看到所安装的证书了 。