10

OpenSSL を使用して private/public/(Certificate Signing Request) を生成し、後でデータに署名したいと考えています。しかし、 OpenSSL GOST エンジンを使用したいのです。

OpenSSL 1.0.0をダウンロードし、 openssl.cfgファイルを変更しました。

    openssl_conf = openssl_def

    [openssl_def]
    engines = engine_section

    [engine_section]
    gost = gost_section

    [gost_section]
    engine_id = gost
    dynamic_path = ./gost.dll
    default_algorithms = ALL
    CRYPT_PARAMS = id-Gost28147-89-CryptoPro-A-ParamSet

秘密鍵と CSR ( 1 行のコマンド文字列)を生成できます。

    openssl req -newkey gost2001 -pkeyopt paramset:A -passout pass:aofvlgzm \
    -subj "/C=RU/ST=Moscow/L=Moscow/O=foo_bar/OU=foo_bar/CN=developer/ \
           emailAddress=vany.egorov@gmail.com" \
    -new > certificate_signing_request.csr

私は2つのファイルを取得します:

  • certificate_signing_request.csr
  • privkey.pem

私はできることを知っています(秘密鍵と公開鍵の(暗号化されていない)テキスト表現を出力します):

    openssl genpkey -algorithm gost2001 -pkeyopt paramset:A -text

私はRSAの代わりにGOSTを使用しているため、次のことができません。

    openssl rsa -in privkey.pem -pubout -out pubkey.pem
    Enter pass phrase for privkey.pem:
    6132:error:0607907F:digital envelope routines:EVP_PKEY_get1_RSA:expecting an rsa key:.\crypto\evp\p_lib.c:288:

私の質問は次のとおりです:gostを使用して公開鍵(秘密鍵またはcsrからmabye)を生成/取得するにはどうすればよいですか?

私が使う:

  • Windows 7 プロフェッショナル x64;
  • OpenSSL 1.0.0;
  • ゴストエンジン

助けてくれてありがとう。

4

1 に答える 1

18

問題を解決しました。

КРИПТО-ПРОに代わるものを望むすべての人のためのステップバイステップガイド

証明書署名要求 (CSR) + 秘密鍵

./openssl req -newkey gost2001 -pkeyopt paramset:A -passout pass:aofvlgzm -subj "/C=RU/ST=Moscow/L=Moscow/O=foo_bar/OU=foo_bar/CN=developer/emailAddress=vany.egorov@gmail.com" -keyout private.key.pem -out csr.csr

private.key.pem で CSR (csr.csr) に署名します (!!! ADMIN COMMAND PROMT ONLY !!!)

管理者でない場合: 「「ランダム状態」を書き込めません」

./openssl x509 -req -days 365 -in csr.csr -signkey private.key.pem -out crt.crt

公開鍵を取得する

./openssl x509 -inform pem -in crt.crt -pubkey -noout > public.key.pem

GOST2001-md_gost94 hex を取得

./openssl.exe dgst -hex -sign private.key.pem message.xml

MIME アプリケーション/x-pkcs7-signature を取得

./openssl smime -sign -inkey private.key.pem -signer crt.crt -in message.xml

于 2011-08-30T21:30:45.573 に答える