HTTPS用にNginxを構成する方法

Let'sEncryptを使用してWebサーバーにHTTPSを設定する方法

最近、公式のNode.jsドロップレットを使用してDigitalOceanにVPSをセットアップしました。これは、リバースプロキシとしてNodeとNginxを使用してUbuntu Linuxをインストールします。つまり、ユーザーとNode.jsアプリの仲介役になります。

デフォルトでは、ドロップレットはHTTPを使用するように構成されていますが、HTTPの安全なバージョンであるHTTPSを使用してアプリを提供する必要があります。

したがって、使用することを含む小さな手順を実行する必要がありますCertbotを介してSSL証明書を取得するには暗号化しましょう、およびそれを使用するようにNginxを構成します。

これから実行する手順は次のとおりです。

CertbotとCertbotNginxパッケージをインストールします

これらの手順は、Ubuntu、Debian、またはを使用するその他のLinuxディストリビューションを使用していることを前提としています。apt-getパッケージを管理するには:

sudo apt-get install certbot python3-certbot-nginx

Nginxを設定する

編集/etc/nginx/sites-available/default正しいサーバー名を設定する(SSLに必須)

sudo nano /etc/nginx/sites-available/default

行を見つけるserver_nameドメイン名を入力します。

server_name my.domain.com;

Now run

sudo systemctl reload nginx

to reload Nginx with the updated configuration.

The firewall should already be configured to accept HTTPS, find it out typing sudo ufw status. You should see Nginx Full in the list. If you only see Nginx HTTP, look up how to change that.

Generate the SSL certificate using Certbot

Now we can invoke Certbot to generate the certificate. You must run this as root:

sudo certbot --nginx -d my.domain.com

(of course, change my.domain.com to your domain name)

Enter your real email, as that will be used to communicate you any problem.

I also suggest to choose the option to redirect HTTP to HTTPS automatically.

That’s it!

SSL certificates are valid for 90 days, and Certbot is already set up for automated renewal. To simulate and test-drive the renewal process, run:

sudo certbot renew --dry-run

This should give you a successful message.

That’s it, now your Node apps should successfully run on HTTPS with no additional changes on your part.


More network tutorials: