Se um script que simplifica é suficiente, então:
#!/bin/sh
subject="/O=Honest Achmed/OU=Fake Certs/CN=google.com"
file="google"
Emita um certificado autoassinado (com o bit CA ativado):
openssl req -new -newkey rsa:2048 -days 365 -subj "$subject" \
-x509 -out "$file.pem" -keyout "$file.key" -nodes
Emita um certificado assinado pela CA:
openssl req -new -newkey rsa:2048 -days 365 -subj "$subject" \
-out "$file.csr" -keyout "$file.key" -nodes
openssl x509 -req -in "$file.csr" -out "$file.pem" \
-CA "$cafile.pem" -CAkey "$cafile.key" -CAserial "serial.txt"
Exportar para o PKCS # 12:
openssl pkcs12 -export -in "$file.pem" -inkey "$file.key" -out "$file.p12"
As ferramentas alternativas são certtool
do GnuTLS e hx509
do Heimdal.