2013-04-21 63 views
1

我需要创建一个新证书,然后找到它以获取序列号(稍后使用它获取公钥和私钥)。如何使用Certutil查找新认证?

如果我就与makecert工具这样一个新的证书从微软SDK的:

makecert -r -pe -a sha1 -n "CN=ElektroSoft" -b 01/01/2013 -e 01/01/2050 -ss my -$ individual 

然后我想,证书将被保存在“我的” ......

..但是,当我尝试列出了“我的”证书我只得到一个条目,而不是我的新证书:

C:\>CERTUTIL -store my 

my 
================ Certificado 0 ================ 
Número de serie: 586a7358ebdce8854def26875f0f38ab 
Emisor: CN=localhost 
NotBefore: 22/02/2013 4:43 
NotAfter: 22/02/2018 2:00 
Sujeto: CN=localhost 
La firma coincide con la clave pública 
Certificado raíz: el sujeto coincide con el emisor 
Plantilla: 
Hash de cert(sha1): 1b 92 19 ef 19 ce d1 09 ad 87 13 73 56 0c cf 0a 57 29 cf 81 
Contenedor de claves = IIS Express Development Certificate Container 
Nombre de contenedor exclusivo: fad662b360941f26a1193357aab3c12d_a61f2a11-eaf9 
-4c14-9a63-d3613bf3bd2c 
Proveedor = Microsoft RSA SChannel Cryptographic Provider 
Prueba de cifrado correcta 
CertUtil: -store comando completado correctamente. 

又在哪里存储我的新的证书?

回答

0

最后我做了我的代码:

@Echo OFF 
Setlocal enabledelayedexpansion 


Set "Name=ElektroSoft" 
Set "Password=Elektro" 
Set "InitialDate=01/01/2013" 
Set "ExpireDate=01/01/2050" 
Set "SerialNumber=%Random%%Random%%Random%%Random%%Random%" 


:: Make certificate 
makecert -r -pe -a sha1 -n "CN=%Name%" -b "%InitialDate%" -e "%ExpireDate%" -$ individual -sr LocalMachine -ss my -cy authority -# "%SerialNumber%" "%Name%.cer" 


:: Export certificate 
For /F "Tokens=2 delims=:" %%# in ('certutil -store my') DO (
    if "%%#" NEQ " CN=%Name%" (Set "SerialNumberHash=%%#") ELSE (
     certutil -exportPFX -p "%Password%" my "!SerialNumberHash: =!" "%Name%.pfx" 
     Pause&Exit)) 


:: Check certificate 
REM certutil -store my 


:: Delete certificate 
REM certutil -delstore MY "%Name%"