Yubikey NEOは、3つの2048ビットRSAキーを備えたOpenPGPカード( こちら を参照)として使用できるため、その公開キーの1つからCAを作成することを考えました。秘密キーは抽出できないため(少なくともその記事によると、とにかくそれを最初に使用する目的です)、openssl ca -inkey ...
を使用して証明書要求に署名することはできません。
有効な証明書用に署名される文字列を手動で生成し、gpg
(Yubikey NEOを使用できる)を使用してこれを行う前に、より簡単な方法があります。 gpgsm
または別のopenssl
パラメータを介して?
GnuPG 2.1.0beta2は、バッチモードでの証明書への署名をサポートしています。
X.509証明書の作成をサポートします。
「gpgsm --genkey」を使用すると、新しいプロンプトを介して自己署名証明書を作成できます。
「gpgsm --genkey --batch」を使用すると、パラメーターファイルで制御される任意の証明書を作成できるようになります。パラメータファイルの例は次のとおりです。
Key-Type: RSA Key-Length: 1024 Key-Grip: 2C50DC6101C10C9C643E315FE3EADCCBC24F4BEA Key-Usage: sign, encrypt Serial: random Name-DN: CN=some test key Name-Email: [email protected] Name-Email: [email protected] Hash-Algo: SHA384 not-after: 2038-01-16 12:44
これにより、キーグリップで指定されたキーを使用し、ハッシュアルゴリズムとしてSHA-384を使用して、自己署名X.509証明書が作成されます。キーワードsigning-keyを使用して、別の鍵で証明書に署名できます。詳細については、sm/certreggen.cを参照してください。
(ソース: コミットメッセージ 、また [〜#〜]ニュース[〜#〜] )
私はそれを機能させました、ここに含まれるステップがあります(あなたの生産システムではこれを行わないでください!)
pinentry
を設定する必要があることを忘れないでください。つまり、グラフィカルなものを使用するか、screen
を使用して、GPG_TTY
を他のtty
に設定します。 pinentry-curses
を使用します(メモ:プロンプトが表示されたら、Enterキーを1回押して実際にアクティブにし、パスフレーズをクリアテキストコマンドとして使用しないでください...)~/.gnupg/private-keys-v1.d
のファイル名を確認して作成日から推定するか、gpg2 -K --with-key-data
を実行して、キーID(フィンガープリント全体ではなく、何らかの方法で分割されている)を含む行を検索しますアップしてスクランブルをかけます)grp:::
で始まる次の行を確認してくださいKey-Type: RSA Key-Grip: E9CE7D421500AD119A4E308BC34317710AA2D57F #(replace with CA keygrip) Key-Usage: cert Serial: random Name-DN: CN=Test Root CA Hash-Algo: SHA512 not-after: 2038-01-16 12:44
gpgsm --gen-key --batch --output CA.crt < batchinputfile
を実行します
Key-Type: RSA Key-Grip: E308BC34317710AA2D57FE9CE7D421500AD119A4 #(replace with keygrip) Key-Usage: sign, encrypt Serial: random Name-DN: CN=Tester Issuer-DN: CN=Test Root CA Hash-Algo: SHA512 not-after: 2038-01-16 12:44 Signing-Key: E9CE7D421500AD119A4E308BC34317710AA2D57F #(replace with CA keygrip) Authority-Key-Id: E9CE7D421500AD119A4E308BC34317710AA2D57F #(replace with CA keygrip)
gpgsm --gen-key --batch --output cert.crt < batchinputfile
を実行します
可能なバッチパラメータの詳細については、 こちら(不完全なドキュメント) および certreqgen.c ;を参照してください。また、basicConstraints
を介してExtension
を手動で含める必要があります。これは、発行元DNを指定した場合、デフォルトで省略されます。これは、ソース で確認できます 。
OpenSSLは理論的には特定の engine add-on を通じてPKCS#11モジュールを使用できます。しかし YubiKey用のPKCS#11モジュールはまだありません があります。このコメントは、「 scute 」と呼ばれるものをほのめかしています。これは、GnuPGをラップするPKCS#11モジュールのようです-そのため、mayYubiKeyのOpenPGP実装と互換性がある。