n

IPアドレスで自己署名証明書を使用してRocket.ChatをHTTPSで接続するための手順を再度まとめます。また、クライアント側の設定はWindowsを前提とします。

1. 自己署名証明書の作成

まず、自己署名証明書を作成します。

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/nginx-selfsigned.key -out /etc/ssl/certs/nginx-selfsigned.crt

`Common Name (e.g. server FQDN or YOUR name)` にはサーバーのIPアドレスを入力します。

2. Diffie-Hellmanパラメータの作成

Diffie-Hellmanパラメータを作成します。

sudo openssl dhparam -out /etc/nginx/ssl/dhparam.pem 2048

3. Nginxのインストール

Nginxをインストールします。

sudo apt update
sudo apt install nginx

4. Nginxの設定

Nginxの設定ファイルを作成・編集します。

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

以下の設定をファイルに追加します:

server {
    listen 80;
    server_name _;

    location / {
        return 301 https://$host$request_uri;
    }
}

server {
    listen 443 ssl;
    server_name _;

    ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt;
    ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_dhparam /etc/nginx/ssl/dhparam.pem;
    ssl_ciphers EECDH+AESGCM:EDH+AESGCM;
    ssl_ecdh_curve secp384r1;
    ssl_session_cache shared:SSL:10m;
    ssl_session_tickets off;
    ssl_stapling on;
    ssl_stapling_verify on;
    resolver 8.8.8.8 8.8.4.4 valid=300s;
    resolver_timeout 5s;
    add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
    add_header X-Frame-Options DENY;
    add_header X-Content-Type-Options nosniff;

    location / {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

`proxy_pass http://localhost:3000;` の部分は、Rocket.Chatが実行されているポート番号に合わせてください。

5. Nginxの設定を有効化と再起動

Nginxの設定を有効にし、サービスを再起動します。

sudo ln -s /etc/nginx/sites-available/rocketchat /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

クライアント側

クライアントが自己署名証明書を信頼するように設定する必要があります。以下の手順でWindowsクライアントに自己署名証明書をインストールします。証明書ファイルをダウンロードRocket.Chatサーバーから自己署名証明書(nginx-selfsigned.crt)をWindowsクライアントにコピーします。証明書ファイルを右クリックして「インストール」コピーした証明書ファイルを右クリックし、「証明書のインストール」を選択します。証明書ストアを「信頼されたルート証明機関」に設定してインストール証明書のインストールウィザードが開きます。「ローカルコンピュータ」を選択し、「次へ」をクリックします。「証明書を次のストアに配置する」を選択し、「信頼されたルート証明機関」を選択して「次へ」をクリックします。最後に「完了」をクリックしてインストールを完了します。

まとめ

  1. 自己署名証明書の作成

  2. Diffie-Hellmanパラメータの作成

  3. Nginxのインストール

  4. Nginxの設定

  5. Nginxの設定を有効化して再起動

  6. クライアント(Windows)に自己署名証明書をインストール

これで、Rocket.Chatを自己署名証明書を使用してHTTPSで接続できるようになります。

この記事が気に入ったらサポートをしてみませんか?