SHA-1よりも強力な自己署名証明書を作成するにはどうすればよいですか?


8

開発環境では、IIS7.5で自己署名証明書を作成できます。しかし、その証明書はSHA-1であり、最近ブラウザーはそれについて不満を言っています。FireBugを開くと、次の警告が表示されます。

「このサイトではSHA-1証明書を使用しています。SHA-1よりも強力なハッシュ関数を使用する署名アルゴリズムを備えた証明書を使用することをお勧めします。」

だから私の質問は:

1)SHA-1よりも強力な自己署名証明書を作成する方法はありますか?

2)そうでない場合、ブラウザにこれらの警告の表示を停止するように指示する方法はありますか?

更新

結局、@ vcsjonesの回答を使用することになりましたが、それだけで今のところ私になりました。機能させる前に解決しなければならない問題がいくつかあります。

1)何らかの理由で、パスワード付きの証明書をインポートできませんでした。だから私はそれなしでそれを作成することになりました。

2)IIS経由で.pfx証明書をインポートすると、バインディングの編集で新しい証明書を適用しようとすると、「指定されたログオンセッションが存在しません」というメッセージが表示され続けました。だから私はほとんど研究をしなかったが、このSOの答え、特にマイクLの答えが役に立つことがわかった。

もう1つ追加したいのは、証明書をインポートするときは、必ず.pfx証明書を選択してください。インポートウィザードのデフォルトの選択は* .cerであり、インポートできます(間違えて作成しました)が、IISサーバー証明書に証明書が表示されませんでした。よく見ると、アイコンに小さなキーがありませんでした。今、私はKB-889651の記事を介してそれを修復することができたという研究をしました。したがって、必ず.pfxをインポートしてください。インポートすると、修復しなくても機能します。

また、この証明書に信頼の問題がある場合は、「信頼されたルート認証局」にもインポートしてください。

回答:


8

承知しました。makecertWindowsのSDKの一部であるユーティリティは、それを行うことができます。

makecert -len 2048 -r -a sha256 -sv private.pvk -n CN=localhost cert.cer

-aパラメータは、ハッシュアルゴリズムを設定します。これにより、PVKとDER .cerファイルが出力されます。もちろん、一般名を好きな名前に変更することもできます。ここでは例としてlocalhostを使用しました。これらをpvk2pfx(同じくSDKの一部である)を使用してPFX(IISが証明書をインポートするときに使用することを好むもの)に組み合わせることができます。

pvk2pfx -spc cert.cer -pvk private.pvk -pfx out.pfx

これは、makecert生成された2つのファイルを受け取り、それらをPKCS12 .pfxファイルに結合するだけです。

結果のPFXファイルを使用して、IISを開き、サーバー証明書の下にインポートしてから、新しい証明書を使用するようにサイトのバインディングを変更します。


作成しましたが、cert.cerとout.pfxはどこにありますか?
ピーター、2015

1
@peterこれは、コンソールの作業ディレクトリが何であってもです。C:\Path\ToADirectory>コマンドプロンプトに次のようなものが表示されます。これが作業ディレクトリです。
vcsjones 2015

iisにout.pfxをインポートしようとすると、パスワードが要求されました。コメントを使用して証明書を作成しているときに設定したパスワードを入力しましたが、失敗しました。理由はわかりますか?
ピーター、2015

vcsjones私はシステムに証明書をインストールしてから、IISでbinindを設定しました.firefoxで閲覧すると、それが開いていませんが、IEでエラープロンプトが続き、ウェブサイトを表示できますが、証明書が信頼できるものではないようにアイコンを表示しています認証局
ピーター、2015

1
注意すべき1つの点は、makecertが非推奨になったことです。Windows 8.1 / Windows Server 2012 R2以降の場合、代わりに次のPowershellコマンドを使用できます: stackoverflow.com/a/19446469/914490
Mike

6

職場でロックダウンされたWindows 7 Enterpriseコンピューターを使用しているため、Windows SDKをインストールしてにアクセスできませんmakecert。以下は、sha256自己署名証明書を作成する方法です(https://core.telegram.org/bots/self-signedから取得)。

  1. 証明書を保存するディレクトリを決定します
  2. そのディレクトリtemplate.txtに、次の内容で呼び出されるテキストファイルを作成します。

    [NewRequest]
    
    ; At least one value must be set in this section
    Subject = "CN={your.domain.com}"
    KeyLength = 2048
    KeyAlgorithm = RSA
    HashAlgorithm = sha256
    ;MachineKeySet = true
    RequestType = Cert
    UseExistingKeySet=false ;generates a new private key (for export)
    Exportable = true ;makes the private key exportable with the PFX
    
  3. {your.domain.com}サイトへのアクセスに使用するアドレスに置き換えます。例:"CN=localhost"

  4. コマンドプロンプトを開き、証明書ディレクトリに移動します
  5. 走る certreq -new template.txt RequestFileOut
  6. シリアル番号を知っている必要があるので、実行certutil -store -user myしてシリアル番号を含むダンプを取得します
  7. {SERIALNUMBER}ダンプのシリアル番号と{YOURDER}.crt出力ファイルの名前で置き換えます。certutil -user -store -split my {SERIALNUMBER} {YOURDER}.crt
  8. {YOURDER}.crt入力ファイル{YOURPEM}.cerの名前と出力ファイルの名前で置き換えます。certutil -encode {YOURDER}.crt {YOURPEM}.cer
  9. {your.domain.com}実際の(テスト)ドメイン名と{YOURPKCS}.pfx出力ファイルの名前で置き換えます。certutil -exportpfx -user {your.domain.com} {YOURPKCS}.pfx NoChain

その後、IISマネージャーに移動しました。[サイト]-> [{サイト名}]-> [バインド]([サイトの編集]の下)。次に、https / 443をクリックしました。すでに設定されているため、[編集...]をクリックし、リストから新しい証明書を選択しました。

Firefoxは私のサイトが自己署名証明書を使用していると不平を言ったので、それを例外として追加しました。動いた!


これはインストールなしの最も効果的な例であり、製品サーバーではできない場合があります。
hungryMind 2017年

これを自分のWindows 7ボックスで動作させることはできませんでしたが、サーバー2012では問題なく動作しました。補足として、{yourpem} .cerと{yourpkcs.pfx}は、リストされている2つのコマンドによって生成されます。おそらく{yourder} .crtと同じ名前を使用したいと思うでしょう。簡単にするために、{yourcert} .crt、{yourcert} .cer、{yourcert} .pfx
DaBlue

0

「指定されたログオンセッションは存在しません」というエラー/警告メッセージも表示されます。

[OK]をもう一度クリックしただけで、受け入れられました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.