localhostの自己署名証明書を作成するにはどうすればよいですか?


133

localhostでhttps / SSLを使用するにどうすればよいですか?で説明されている手順を実行しましたしかし、これは私のマシン名の自己署名証明書を設定します。 https:// localhost、IE警告を受け取ります。

この警告を回避するために「localhost」の自己署名証明書を作成する方法はありますか?


証明書をCAとしてインストールしましたか?
vcsjones 2011年

プロセスに従って、Win7でIISに自己署名証明書をインストールしました。しかし、これにより「mymachinename」の証明書が作成され、「localhost」の証明書が必要になります。
クリス

1
こんにちは!makecertは非推奨であるため、Auriの回答を主な回答として設定することを検討してください。答えへのリンク:stackoverflow.com/a/44164653/1461602
Tormod Haugene

回答:


81

この投稿はWindowsのタグが付けられていますが、OS Xの関連する質問で、他の回答は見ていません。OS Xでlocalhostの自己署名証明書を作成する手順は次のとおりです。

# Use 'localhost' for the 'Common name'
openssl req -x509 -sha256 -nodes -newkey rsa:2048 -days 365 -keyout localhost.key -out localhost.crt

# Add the cert to your keychain
open localhost.crt

Keychain Access、この新しいlocalhost証明書をダブルクリックします。[信頼]の横の矢印を展開し、[常に信頼する]を選択します。ChromeとSafariはこの証明書を信頼するようになります。たとえば、この証明書をnode.jsで使用する場合:

var options = {
    key: fs.readFileSync('/path/to/localhost.key').toString(),
    cert: fs.readFileSync('/path/to/localhost.crt').toString(),
    ciphers: 'ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES256-SHA384',
    honorCipherOrder: true,
    secureProtocol: 'TLSv1_2_method'
};

var server = require('https').createServer(options, app);

2
ssh-keygenopensslコマンド新しいキーを作成している(そしてsshで作成したキーを上書きしている)ため、最初のコマンドは不要です。
フェリックスSaparelli

7
また-subj '/CN=localhost'openssl引数に追加することで、プロセスを完全に自動化できます。
フェリックスSaparelli

8
代わりに、周りのクリックのコマンドラインからのOS Xの信頼、それを持っているために、あなたが行うことができます:sudo security add-trusted-cert -p ssl -d -r trustRoot -k ~/Library/Keychains/login.keychain localhost.crt
philfreo

1
Linuxにも関連します。どうもありがとう。
Marcel

1
私はこれらのすべての手順を実行しましたがERR_SSL_VERSION_OR_CIPHER_MISMATCH、Chrome 60でSafari 10.1.2も気に入らなくなりました。
スタイフル2017

61

この質問にはタグが付けられていてIIS、信頼できる証明書を取得する方法について適切な答えが見つからないため、2セントでそれを説明します。

まず、管理者としてPowerShellで@AuriRahimzadehのコマンドを使用します。

New-SelfSignedCertificate -DnsName "localhost" -CertStoreLocation "cert:\LocalMachine\My"

これは適切ですが、証明書は信頼されておらず、次のエラーが発生します。にインストールされていないためTrusted Root Certification Authoritiesです。

ここに画像の説明を入力してください

を起動してこれを解決しmmc.exeます。

次に移動します:

ファイル->スナップインの追加または削除->証明書->追加->コンピューターアカウント->ローカルコンピューター。完了をクリックします。

展開しPersonalたフォルダを、あなたはあなたが表示されますlocalhost証明書を:

ここに画像の説明を入力してください

証明書をTrusted Root Certification Authorities - Certificatesフォルダーにコピーします。

最後のステップは、開くInternet Information Services (IIS) Managerか、単にすることinetmgr.exeです。そこから自分のサイトに移動し、Bindings...and Add...またはを選択しますEdit...httpsドロップダウンから証明書を設定して選択します。

ここに画像の説明を入力してください

これで証明書が信頼されました。

ここに画像の説明を入力してください


9
これは受け入れられる答えになるはずです!できます!ローカルホストと信頼できる証明書をいじった場合。古いlocalhost証明書はすべて削除してください(mmcコンソールおよびIIS(上位の管理対象サーバー)経由)
Tuan Jinn

ありがとう!このトピックに関するSOの回答とブログ投稿は非常に多くありますが、証明書の信頼の問題についての話はほとんどありません。ヒント:デフォルトのSSLポート443を使用しない理由を説明する必要がありますか?このポートは他のプロセスによって使用されることが多いためだと思います。
HoffZ

本当にいい答えで、2020年にはIISでうまく機能します。ありがとうございます。
alessandrocb

hostsファイルのエイリアスにも使用できます
Zef

52

PowerShellを使用して、new-selfsignedcertificateコマンドレットで自己署名証明書を生成できます。

New-SelfSignedCertificate -DnsName "localhost" -CertStoreLocation "cert:\LocalMachine\My"

注:makecert.exeは非推奨です。

コマンドレットリファレンス:https : //technet.microsoft.com/itpro/powershell/windows/pkiclient/new-selfsignedcertificate


これは2017年のように答えなければなりません
トーモッドHaugene

1
結果の証明書をインストールする方法を知らず、フォローしている人は、このビデオの手順に従ってください。うまくいきました!youtube.com/watch?v=y4uKPUFmSZ0
エリックブラウン

6
キーとcrtファイルはどこに保存されますか?
woojoo666 2018

1
@ woojoo666に-KeyLocationフラグを付けて、場所を指定できます。
07

46

IISを使用して自己署名証明書を作成する提案に従うたびにこの問題にかなりの時間を費やした後、発行先と発行者が正しくないことがわかりました。SelfSSL.exeは、この問題を解決するための鍵でした。次のWebサイトは、自己署名証明書を作成するための段階的なアプローチを提供するだけでなく、「発行先」および「発行元」の問題を解決しました。これが、自己署名証明書を作成するために私が見つけた最良のソリューションです。同じチュートリアルをビデオ形式で表示したい場合は、ここをクリックしてください

SelfSSLの使用例は次のようになります。

SelfSSL /N:CN=YourWebsite.com / V:1000 / S:2

SelfSSL /?説明付きのパラメータのリストを提供します。


RobBagby.comの記事は私にとって完璧に機能しました。ヘンリーを見つけてください。
cymorg 2013

メガ!そのビデオは質が悪いですが、必要なすべてが含まれています。
tonco

2
robbagbyサイトへのリンクは死んでいます。CodeCowboyOrgによる2つの高品質のYouTubeチュートリアルに対する私の回答をご覧ください
Moses Machua

robbagby.com上の記事のWaybackアーカイブにリンクするための編集された回答。
プロメテウス

23

あなたが行くことができる自己署名証明書を作成しようとしている場合http://localhost/mysite は、それを作成する方法は次のとおりです

makecert -r -n "CN=localhost" -b 01/01/2000 -e 01/01/2099 -eku 1.3.6.1.5.5.7.3.1 -sv localhost.pvk localhost.cer
cert2spc localhost.cer localhost.spc
pvk2pfx -pvk localhost.pvk -spc localhost.spc -pfx localhost.pfx

http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/32bc5a61-1f7b-4545-a514-a11652f11200から


2
私の証明書はどこに行きましたか:oそれはC:\ Windows \ system32にありません
EaterOfCode

2
ちなみに、makecert.exeツールは、将来の読者のためにVisual Studioコマンドプロンプトを介して使用されます。インターネットインフォメーションサービス(IIS)リソースキットツールを使用して、SelfSSL 1.0をインストールすることもできます。microsoft.com/downloads/en/...
atconway

3
迅速な回答は素晴らしいですが、常に役立つとは限りません。「証明書はSSLサーバー証明書として使用できません」は、IIS7で表示されるエラーです。Opは、「証明書を作成する方法」ではなく、ブラウザの警告についても言及していましたか?
cmroanirgo

cert2spcのステップを省略できるため、パラメーターpvk2pfx -spc .spcと.cerの両方を受け入れます
abatishchev

1
@EaterOfCode MineはC:\ Windows \ SysWOW64にありました
Bay Sola

10

自己署名証明書を作成するためのPluralsightのツールをお勧めします:http ://blog.pluralsight.com/selfcert-create-a-self-signed-certificate-interactively-gui-or-programmatically-in-net

証明書を.pfxとして作成し、IISにインポートします。そして、それを信頼されたルート証明機関として追加します。


1
あらゆる種類のPowerShellの「マジック」など、うまくいかなかったものを試してみたところ、Pluralsightのツールは、30秒のフラットで動作するスクリプトを生成しました。ツールを抽出します、つまり)。私はまだこの古いラップトップでWindows 7を実行しているので、これは私にとって完璧なソリューションでした、ありがとう!
Ade

1

はいといいえ。証明書が信頼された認証局によって署名されていないため、自己署名証明書はその警告メッセージをもたらします。ローカルマシンでこの警告を削除するために検討できるオプションがいくつかあります。詳細については、この質問に対する最高ランクの回答を参照してください。

Internet Explorer 8で自己署名証明書を受け入れるには、何をする必要がありますか?

お役に立てれば!


編集:

申し訳ありませんが、私は当初、あなたがlocalhostに制限されていることを知りませんでした。以下のリンクにある「正しい共通名で自己署名証明書を生成する」の指示に従ってください。

http://www.sslshopper.com/article-how-to-create-a-self-signed-certificate-in-iis-7.html


いいえ、URL(localhost)がマシン名で発行された証明書名と一致しないため、警告メッセージが表示されます。mymachinenameに切り替えると、エラーは発生しません。残念ながら、質問に影響を与えない理由で、マシン名ではなくlocalhostを使用する必要があります。
クリス


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