55

これが私の状況です:

すべての開発者のマシンと 2 つの内部サーバー (すべて非実稼働) にインストールされる SSL 証明書を作成しようとしています。

これらすべての場所にインストールできる証明書を作成するには、どうすればよいですか?

現在、Microsoft Visual Studio 8\SDK\v2.0\Bin の makecert アプリケーションを使用して、これらの行に沿ったものを取得しています。

makecert -r -pe -n "CN=MySite.com Dev" -b 01/01/2000 -e 01/01/2033 -eku 1.3.6.1.5.5.7.3.1 -ss Root -sr localMachine -sky exchange -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 mycert.cer

ただし、この .cer ファイルを他のコンピューターに配置する方法がわかりません。ローカル マシン IIS にインストールすると、https: 経由でページにアクセスするたびにセキュリティ プロンプトが表示されます (証明書をインストールしました)。誰もこれを以前にやったことがありますか?

4

2 に答える 2

140

これを行うためのスクリプトは次のとおりです。

認証局の作成

自己署名証明書 (-r) をエクスポート可能な秘密鍵 (-pe) で作成し、署名 (-sky 署名) のために SHA1 (-r) を使用します。秘密鍵はファイル (-sv) に書き込まれます。

makecert -r -pe -n "CN=My Root Authority" -ss CA -sr CurrentUser ^
         -a sha1 -sky signature -cy authority -sv CA.pvk CA.cer

(^= バッチコマンドラインで行を折り返すことができます)

サーバー証明書の作成

鍵交換 (-sky exchange) に SHA1 (-a) を使用して、エクスポート可能な秘密鍵 (-pe) でサーバー証明書を作成します。SSL サーバー証明書 (-eku 1.3.6.1.5.5.7.3.1) として使用できます。発行する証明書は、キー (-iv) と同様にファイル (-ic) にあります。特定の暗号プロバイダー (-sp、-sy) を使用します。

makecert -pe -n "CN=fqdn.of.server" -a sha1 -sky Exchange ^
         -eku 1.3.6.1.5.5.7.3.1 -ic CA.cer -iv CA.pvk ^
         -sp "Microsoft RSA SChannel Cryptographic Provider" ^
         -sy 12 -sv server.pvk server.cer

pvk2pfx -pvk server.pvk -spc server.cer -pfx server.pfx

次に、サーバー アプリで .PFX ファイルを使用します (または IIS にインストールします)。pvk2pfx既定では、出力 PFX ファイルにパスワードが適用されないことに注意してください。-poそのためには、スイッチを使用する必要があります。

すべてのクライアント マシンがCA.cer を信頼するようにするには、証明書ストア (信頼されたルート認証局ストア) にCA.cerをインストールします。ドメイン上にいる場合は、Windows グループ ポリシーを使用してこれをグローバルに行うことができます。そうでない場合は、certmgr.msc MMC スナップインまたはcertutilコマンドライン ユーティリティを使用できます。

certutil -user -addstore Root CA.cer

プログラムで IIS 6.0 に証明書をインストールするには、この Microsoft KB 記事 を参照してください。IIS 7.0 の場合はわかりません。

于 2009-01-30T18:58:48.753 に答える
12

認証局を作成するときにスイッチに追加する必要-cy authorityがあります。そうしないと、一部の証明書ストアで適切な CA として認識されません。

于 2010-03-24T20:49:49.980 に答える