Если вы посмотрите документацию openssl pkcs12 , вы увидите:
-passin arg
Пароль файла PKCS # 12 (то есть входного файла)источник.Для получения дополнительной информации о формате arg см. Раздел «PASS PHRASE ARGUMENTS» в openssl (1).
-passout arg
Источник парольной фразы для шифрования любых выведенных закрытых ключей с помощью.Для получения дополнительной информации о формате arg см. Раздел «PASS PHRASE ARGUMENTS» в openssl (1).
, который указывает на:
Pass Phrase Options
Несколько команд принимают аргументы пароля, обычно используя -passin и -passout для паролей ввода и вывода соответственно.Это позволяет получить пароль из разных источников.Обе эти опции принимают один аргумент, формат которого описан ниже.Если аргумент пароля не задан и пароль требуется, то пользователю предлагается ввести его: он обычно будет считываться с текущего терминала с отключенным эхом.
Обратите внимание, что кодировка символов может иметь значение, см.кодировка фразы (7).
пароль: пароль
Фактический пароль - пароль.Поскольку пароль виден утилитам (например, «ps» в Unix), эту форму следует использовать только там, где безопасность не важна.env: var
Получить пароль из переменной окружения var.Поскольку окружение других процессов видно на определенных платформах (например, ps в определенных ОС Unix), этот параметр следует использовать с осторожностью.file: pathname
Первая строка pathname - это пароль.Если один и тот же аргумент pathname указан для аргументов -passin и -passout, то первая строка будет использоваться для входного пароля, а следующая строка для выходного пароля.путь не должен ссылаться на обычный файл: он может, например, ссылаться на устройство или именованный канал.fd: number
Считать пароль из номера дескриптора файла.Это может использоваться, например, для отправки данных по каналу.stdin
Считать пароль из стандартного ввода.
Таким образом, чтобы сложить все это вместе, вы можете сделать:
openssl pkcs12 -in cert.pfx -out cert.pem -passin pass:mypass -passout: pass:mypass
Относительно того, почему -password неработать для вас:
-password arg
С -export -password эквивалентен -passout.В противном случае -password эквивалентен -passin.
Таким образом, поскольку вы не используете "-export", он действует так же, как опция "-passin".Из-за этого поведения я предпочитаю явно использовать «-passin» и «-passout».