web-dev-qa-db-ja.com

fiddler2が証明書を生成できません

Fiddler2を使用して(または試行して)、httpsデスクトップサービスにアクセスするWindowsデスクトップガジェットのSSLトラフィックをキャプチャしています。以前は機能していたが、数日前に停止し、常に次のエラーが発生した。

--------------------------- 
Unable to Generate Certificate 
--------------------------- 
Creation of the interception certificate failed. 
makecert.exe returned -1. 
Results from C:\Program Files\Fiddler2\MakeCert.exe -ss my -n 
"CN=DO_NOT_TRUST_FiddlerRoot, O=DO_NOT_TRUST, OU=Created by 
http://www.fiddler2.com" -eku 1.3.6.1.5.5.7.3.1 -r -cy authority -a 
sha1 
Error: Can't create the key of the subject ('JoeSoft') 
Failed 
------------------------------------------- 

(fiddlerのgoogleグループからエラーをスワイプしましたが、自分のエラーを投稿しただけで、すぐに表示されるはずです)。

他の誰かがこの問題を抱えて解決しましたか?フィドラーは壊れていますか?

36
Ben Collins

Win7では

  • だからここに行きます:C:\Users\<username>\AppData\Roaming\Microsoft\Crypto\RSA\
  • allファイル(UUIDSで命名された)を選択します。
  • それらのファイルをAppData dir外のデスクトップまたは他のフォルダーに移動します。
  • 起動FiddlerToolsに移動| Fiddler Options | Enable HTTPS decryption
  • 今回は(うまくいけば)うまくいくことを確認してください。
  • ファイルを一時的な場所(Desktop)から戻します。
    元のものに:C:\Users\<username>\AppData\Roaming\Microsoft\Crypto\RSA\
  • ファイルの1つで既存のファイルを置き換えるかどうかを尋ねられたら、それをskipします。
36
user1740078

私や他の人がこの問題を抱えています。これは、Fiddlerが(おそらく以前のバージョンのFiddlerから)作成しようとしている鍵ディレクトリーと同じ名前で、鍵ストアにすでに存在する鍵ディレクトリーです。

私のマシンのキーディレクトリは次の場所にあります。

C:\Users\\[username]\AppData\Roaming\Microsoft\Crypto\RSA\\[folder-with-big-name]\

競合は実際には主要なフォルダ名であったことに注意してください。フォルダーの名前を変更したところ、キーの生成は正常に機能しました。

詳細については、このリンクを参照してください: https://groups.google.com/d/msg/httpfiddler/B-Mu6AxgiIc/LY69rWUBshMJ

31
Nicholas Cloud

Windows 8ボックスでも同じ問題が発生しました。 @ Nicholas-Cloudごとにキーファイルを手動で削除しても、役に立ちませんでした。だから私はいろいろなことを試し続け、ついにこれを整理することができました。

証明書の問題を解決するために、次のことを行いました。

  1. [ツール]-> [オプション]-> [HTTPS]タブで、[HTTPSトラフィックの復号化]オプションをオフにしました。これにより、ダイアログの下部にある[インターセプト証明書の削除]ボタンが有効になりました
  2. 「インターセプト証明書の削除」ボタンをクリックした
  3. すべてのポップアップメッセージに対して「はい」と述べた
  4. 「復号化...」オプションを再び有効にしました。
  5. Fiddler Windows 8の構成手順 で説明されているように、一連のポップアップメッセージが続きます。

注:上記の手順で問題が解決しない場合は、Fiddlerを再インストールして、手順を繰り返してみてください。 HTTPオプションを取得する前に、最初に再インストールしました。

14
dmytroUa

fiddlerのハードコードされたコマンドは古くなっています。

誰もがフォルダの削除を停止します。

「Androidで動作するより優れた証明書」を生成すると主張するfliddlerプラグインをインストールするだけです。公式のフィドラープラグインリストにあります。

そのプラグインはあなたのためにそれを修正します。

12
gcb

Fiddler証明書の生成が失敗した場合、適切な修正は、既存のFiddler2秘密キーを手動で選択して削除することです。ユーザーの秘密鍵ストアを完全に破壊する上記のPowerShellコードは非常に悪い考えです。それはすべての個人証明書を役に立たなくします。

Fiddler2が実行するのと同じコマンドを実行して、問題を確認します。

cd "C:\Program Files (x86)\Fiddler2"
makecert.exe -r -ss my -n "CN=DO_NOT_TRUST_FiddlerRoot, O=DO_NOT_TRUST, OU=Created by http://www.fiddler2.com" -sky signature -eku 1.3.6.1.5.5.7.3.1 -h 1 -cy authority -a sha1 -m 120 -b 09/05/2012

証明書の生成に失敗した場合は、既存の秘密鍵を削除する必要があります。証明書の秘密鍵を見つけるためのツールについては http://poshcode.org/3637 を参照してください。

それを実行します:

Get-PrivateKeyPath CN=DO_NOT_TRUST_FiddlerRoot

c:\Users\JoeUser\AppData\Roaming\Microsoft\Crypto\RSA\7b90a71bfc56f2582e916a51aed6df9a_f6d54f4e-ff40-450e-9d77-7cfc383b357のようなものが返されます。そのファイルを削除して、証明書の再生成を試みます。成功するはずです。行う[〜#〜]しない[〜#〜]で秘密鍵ストア全体を破棄します。

8
Jari Turkia

私にとっての簡単な修正は、 Fiddler CertMaker をインストールすることでした。

7
IsolatedStorage

ニコラスの答えは正しいです。他の人もこのページを見つけるのを助けるために:

これは、Fiddlerの[Fiddlerのルート証明書をデスクトップにエクスポート]ボタンをクリックするか、コードからFiddler.CertMaker.createRootCert()を呼び出すと、「Fiddlerのルート証明書をエクスポートできません」というメッセージが表示される場合に役立ちます。

2
Tom de Waard

同じエラーが発生しました。これは確かに、以前のバージョンのFiddlerの存在と、それらの間の非互換性によるものでした。

上記のフォルダーはFiddlerによってのみ使用され、Fiddlerが作成する証明書を格納します(または少なくともボックス上の個人証明書用であり、Fiddlerだけが使用されます)。 Fiddler以外の個人証明書があるかどうかを確認することをお勧めします。 IEでは、これはツール/インターネットオプション/コンテンツ/証明書/個人を使用しています。

フォルダを完全に空にし、システムファイルの削除に関するメッセージを恐れないでください。次に、Fiddlerで、HTTPSトラフィックをキャプチャして復号化するオプションを再度選択します。必要に応じて、Fiddlerのルート証明書をデスクトップに再エクスポートしてから、IEおよびFFに再インポートします。必要に応じてブラウザーを再起動してお楽しみください。

すべてを削除するのではなく、IE DO_NOT_TRUST_FIddlerRootに発行されたプライベート証明書も同じように削除しますが、これはテストしていません。

解読オプションは、不要になったらすぐにオフにしてください。

2
olivier

C:\ Users \\ AppData\Roaming\Microsoft\Crypto\RSA \パスにあるファイルのコンテンツで「JoeSoft」を探すことにより、競合するファイルを特定できます。

1
Mecu Sorin

Nicholas Cloudの返信に加えて、そのフォルダーの名前を変更するのに役立つ小さなスクリプトを次に示します。

# Find my SID 
$user = New-Object System.Security.Principal.NTAccount([Environment]::UserName) $mySID = ($user.Translate([System.Security.Principal.SecurityIdentifier])).Value

# Rename keys folder with a timestamp
$timeStamp = Get-Date -format "ddMMyyhhmmss"
$folder = Join-Path -Path $env:USERPROFILE -ChildPath "appData\Roaming\Microsoft\Crypto\RSA\$mySID"
Rename-Item -Force $folder "$folder.$timeStamp"

Nicholasの返信にコメントを追加すると、コードをフォーマットできるため、別の返信を作成することになりました。

1
Ameer Deen

私はこの正確なエラーがあり、それを解決することができました:

  1. 更新中 fiddlerCore
  2. @DemytroUaが言ったように 'Tools-> Options-> HTTPSタブで、「Capture HTTPS CONNECTSs」オプションのチェックを外しました。ダイアログの下部にある[インターセプト証明書の削除]ボタンをクリックします '
  3. 証明書マネージャーを開く(実行ダイアログにcertmgr.mscと入力-Windows + R)
  4. 個人->証明書に移動します
  5. 「DO_NOT_TRUST_FiddlerRoot」証明書をすべて削除する
  6. Fiddlerで「ツール-> Fiddlerオプション-> HTTPS」タブの「HTTPSトラフィックを復号化」をチェックします

FiddlerCore(詳細については this SO question)を参照)を更​​新するだけでよい可能性がありますが、私は完全に安全になるために行ったすべてのことをリストしました。

0
ajon

インストールフォルダー「d:\ Program Files\Fiddler」にcdして、次のコマンドを実行します。

makecert.exe -r -ss my -n "CN=DO_NOT_TRUST_FiddlerRoot, O=DO_NOT_TRUST, OU=Created by http://www.fiddler2.com" -sky signature -eku 1.3.6.1.5.5.7.3.1 -h 1 -cy authority -a sha1 -m 120 -b 09/05/2012

証明書が作成され、問題が解決されます

0
Nightcap79