以下のチュートリアルに沿って、httpsのサーバーを作成しました。 https://docs.nodejitsu.com/articles/HTTP/servers/how-to-create-a-HTTPS-server/
で、プログラムはエラーなく実行されます
しかし、クロームでhttps://localhost:8000 を開くことができません。
常に ERR_SSL_PROTOCOL_ERROR
が表示されます。
そこで、手っ取り早いのがngrokを使う方法です。
使い方はとても簡単で、ほんの数秒で実行できます。あなたのシステムのバージョンをダウンロードするだけです。解凍して ngrok.exe
を実行します。コマンドラインのようなウィンドウが開きます。Apacheサーバーまたはあなたが使用しているサーバーが起動していることを確認してください。
そして、HTTPSトンネルのエンドポイントのみをリッスンするために、次のように実行します。
ngrok http -bind-tls=true site.dev:80
または https
がインストールされている必要があるポートに接続してください。
ブラウザを開き、https://localhost/myApp
と入力すると、動作することが確認できます。
また、http://localhost/myApp
と入力しても動作します。
迅速な解決策を求める方のお役に立てれば幸いです。
もしこれがテスト用で、有効な証明書が必要ない場合("localhost"を使用しているのでそうだと思われます)、"自己署名証明書を使用することができます。
詳細については、Digital Oceanのコミュニティチュートリアルに掲載されている記事を参照してください。
8000でリッスンしたい場合は、ポート(443)を適合させることを確認してください。
node.jsを使用していると仮定すると、http-serverには、httpsを有効にするために -C
と -K
の -S
または--ssl
があります。
次の2つのことを行う必要があります。
自己署名SSL証明書を生成します。 信頼できる証明書に追加します。
macOSでこれを行うことができました。
。 openssl req -x509 -out localhost.crt -keyout localhost.key \。 -newkey rsa:2048 -nodes -sha256 \。 -subj '/ CN = localhost' -extensions EXT -config<(\。 printf "[dn] \ nCN = localhost \ n [req] \ ndistinguished_name = dn \ n [EXT] \ nsubjectAltName = DNS:localhost \ nkeyUsage = digitalSignature \ nextendedKeyUsage = serverAuth")。
。*そして、証明書を信頼された証明書に追加するには、次のコマンドを実行しました(このブログで提案)。
。 sudoセキュリティadd-trusted-cert -d -r trustRoot -k "/ Library/Keychains/System.keychain" "/private/tmp/certs/certname.cer"。
。