certificatecertutilcertreq

Importing .cer certificate from cmd


Importing a .cer certificate with certutil utility can't manage to match it with its private key although the certificate signing request was created on the same machine.

I'm using certreq to generate the .csr file used for getting this certificate and in the .inf I have the Exportable = True flag. Doing the import manually through the mmc wizard works, but not when running the following command from the admin console.

certutil -addstore -f "My" "website_aps_production.cer"

Moreover after importing the certificate with certutil, looking in mmc I noticed the Friendly Name is reset (appears as None).

I already tried the repairstore mechanism after importing the certificate from cmd, but did not help.

certutil -repairstore my >cert_thumbprint<

UPDATE

I tried importing the certificate using certreq -accept -machine website_aps_production.cer, but this is throwing an error: A certificate chain could not be built to a trusted root authority. 0x800b010a and there is an additional warning in the console A certificate issued by the certification authority cannot be installed. Contact your administrator.


Solution

  • As a workaround, I managed to automate the certificate import process using PowerShell.

    Set-Location -Path cert:\LocalMachine\My
    
    Import-Certificate -Filepath "C:\website_aps_production.cer"
    

    This way, the certificate is imported in the local computer's store and matched with its corresponding private key which can be further exported.

    A more convenient solution is, however, creating everything using openSSL and not using the certificate store at all. This way the privatekey is exported independently from the certificate.

    openssl req -nodes -newkey rsa:2048 -keyout pvkey.key -out csr.csr -subj "/C=test/ST=test/L=test/O=test/OU=test/CN=test" -config "C:\openssl.cnf"