localhostにhttpsサーバーを作成する方法

以下のチュートリアルに沿って、httpsのサーバーを作成しました。 https://docs.nodejitsu.com/articles/HTTP/servers/how-to-create-a-HTTPS-server/

で、プログラムはエラーなく実行されます

しかし、クロームでhttps://localhost:8000 を開くことができません。

常に ERR_SSL_PROTOCOL_ERROR が表示されます。

[ここに画像の説明を入力][1]

質問へのコメント (2)

そこで、手っ取り早いのがngrokを使う方法です。

使い方はとても簡単で、ほんの数秒で実行できます。あなたのシステムのバージョンをダウンロードするだけです。解凍して ngrok.exe を実行します。コマンドラインのようなウィンドウが開きます。Apacheサーバーまたはあなたが使用しているサーバーが起動していることを確認してください。

そして、HTTPSトンネルのエンドポイントのみをリッスンするために、次のように実行します。

ngrok http -bind-tls=true site.dev:80

または https がインストールされている必要があるポートに接続してください。

ブラウザを開き、https://localhost/myAppと入力すると、動作することが確認できます。

また、http://localhost/myAppと入力しても動作します。

迅速な解決策を求める方のお役に立てれば幸いです。

解説 (4)

私はCaddyserverを使って、このような設定にしています。

:443
tls self_signed
解説 (1)

もしこれがテスト用で、有効な証明書が必要ない場合("localhost"を使用しているのでそうだと思われます)、"自己署名証明書を使用することができます。

詳細については、Digital Oceanのコミュニティチュートリアルに掲載されている記事を参照してください。

https://www.digitalocean.com/community/tutorials/how-to-create-a-self-signed-ssl-certificate-for-nginx-in-ubuntu-16-04

8000でリッスンしたい場合は、ポート(443)を適合させることを確認してください。

解説 (0)

node.jsを使用していると仮定すると、http-serverには、httpsを有効にするために -C-K-Sまたは--sslがあります。

解説 (4)

次の2つのことを行う必要があります。

自己署名SSL証明書を生成します。 信頼できる証明書に追加します。

macOSでこれを行うことができました。

  • SSL証明書を生成するには、ターミナルでfollosingコマンドを実行します([Let's Encrypt][1]の指示に従って): ``。 openssl req -x509 -out localhost.crt -keyout localhost.key \。 -newkey rsa:2048 -nodes -sha256 \。 -subj '/ CN = localhost' -extensions EXT -config
解説 (2)