How to produce p12 file with RSA private key and self-signed certificate?

0

1

I believe that the exact procedure below worked for me two weeks ago, but now it doesn't. I start with an RSA private key rsa.pem and generate my own self-signed certificate:

openssl req -new -x509 -key rsa.pem -out rsa.cer

then I try to create a p12 file:

openssl pkcs12 -export -out rsa.p12 -inkey rsa.pem -in rsa.cer

but I only get the following message:

Usage: pkcs12 [options]
where options are
-export       output PKCS12 file
-chain        add certificate chain
-inkey file   private key if not infile
-certfile f   add all certs in f
-CApath arg   - PEM format directory of CA's
-CAfile arg   - PEM format file of CA's
-name "name"  use name as friendly name
-caname "nm"  use nm as CA friendly name (can be used more than once).
-in  infile   input filename
-out outfile  output filename
-noout        don't output anything, just verify.
-nomacver     don't verify MAC.
-nocerts      don't output certificates.
-clcerts      only output client certificates.
-cacerts      only output CA certificates.
-nokeys       don't output private keys.
-info         give info about PKCS#12 structure.
-des          encrypt private keys with DES
-des3         encrypt private keys with triple DES (default)
-seed         encrypt private keys with seed
-aes128, -aes192, -aes256
              encrypt PEM output with cbc aes
-camellia128, -camellia192, -camellia256
              encrypt PEM output with cbc camellia
-nodes        don't encrypt private keys
-noiter       don't use encryption iteration
-nomaciter    don't use MAC iteration
-maciter      use MAC iteration
-nomac        don't generate MAC
-twopass      separate MAC, encryption passwords
-descert      encrypt PKCS#12 certificates with triple DES (default RC2-40)
-certpbe alg  specify certificate PBE algorithm (default RC2-40)
-keypbe alg   specify private key PBE algorithm (default 3DES)
-macalg alg   digest algorithm used in MAC (default SHA1)
-keyex        set MS key exchange type
-keysig       set MS key signature type
-password p   set import/export password source
-passin p     input file pass phrase source
-passout p    output file pass phrase source
-engine e     use engine e, possibly a hardware device.
-rand file:file:...
              load the file (or the files in the directory) into
              the random number generator
-CSP name     Microsoft CSP name
-LMK          Add local machine keyset attribute to private key

I'm just following previous posts:

https://stackoverflow.com/questions/38841563/create-rsacryptoserviceprovider-object-using-rsa-private-key-file-in-c-sharp

https://stackoverflow.com/questions/10994116/openssl-convert-pem-containing-only-rsa-private-key-to-pkcs12

FullStack

Posted 2016-08-31T01:30:17.150

Reputation: 139

1Check for Unicode hyphens if you copied the command from the browser. – techraf – 2016-08-31T02:05:38.543

I would have never guessed that was the issue. Thank you! – FullStack – 2016-08-31T02:56:29.533

Answers

1

When get a syntax error (or usage guidance) on a seemingly correct command which you copied from a web browser (not typed yourself), first check the non-alphanumerical characters, like quotes and hyphens.

Browsers nowadays replace them with Unicode characters that might look similar to the human eye, but confuse the shell or programs.

techraf

Posted 2016-08-31T01:30:17.150

Reputation: 4 428

Browsers don't replace anything. Blogging/publishing webapps, however, frequently do. – user1686 – 2016-08-31T08:48:43.393

Thanks, I will consider your input. OS X replaces these characters in the user interface, but I'm not at the console right now to check if it's only for the input or is the display also affected. – techraf – 2016-08-31T08:55:31.040