https接続用にExpressJSアプリを設定しようとしています。 Expressサーバーは、localhost:8080およびsecure localhost:8443で実行されます。ここでExpressとNginxでHTTPSを設定する
は、httpsに関連server.jsコードです:私がやったこと
server {
listen 80;
listen [::]:80;
server_name fire.mydomain.me;
location/{
proxy_pass http://localhost:8080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
server {
listen 443;
listen [::]:443;
server_name fire.mydomain.me;
location/{
proxy_pass https://localhost:8443;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
:
- の生成SSL
var app = express(); var https = require('https'); const options = { cert: fs.readFileSync('/etc/letsencrypt/live/fire.mydomain.me/fullchain.pem'), key: fs.readFileSync('/etc/letsencrypt/live/fire.mydomain.me/privkey.pem') }; app.listen(8080, console.log("Server running")); https.createServer(options, app).listen(8443, console.log("Secure server running on port 8443"));
そして、ここでは私のnginxの設定ですドメインfire.mydomain.meのLetsencrypt certonlyツールによる証明書。
- nginxの設定。
- server.jsノードアプリケーションの設定。
- Ufwの443ポートのTCPルールを追加する。
私は、SSLの設定を通過する接続を強制的にserver.jsではない、SSLサーバ行をコメント
を試してみました:私は火に行くしようとすると、このページを提供しています。 mydomain.me:443ではなく、 "https:// fire.mydomain.me"には適用されません。いずれの場合も、SSLはありません。 https:// fire.mydomain.meにアクセスしようとすると、Google Chromeで「このウェブサイトは安全な接続を提供していません」というメッセージが表示されます。
私は私のSSLノードの設定を設定するには、最初の場所でこのチュートリアルに従っ: https://medium.com/@yash.kulshrestha/using-lets-encrypt-with-express-e069c7abe625#.93jgjlgsc
はあなた先生ありがとう、あなたのexplainationは非常に有用であり、これは動作しています! :) ' – Guillaume