見出し画像

Dify 0.6.12をHTTPS化する方法

教育現場で生成AIを活用した実践を行っている南部です。今月『英語教師のためのChatGPT活用ガイド』という本を出したので、もしよければお手に取ってみてください。

さて、最近、私は自分のサーバー上でDifyを使用し始めました。

しかし、Difyのバージョン0.6.12以降で、少し仕様が変わっているようで、HTTPS化するための手順がネット上で見当たらなかったので、まとめてみました。

1. CerbotのインストールとSSL証明書の発行

まず、Cerbotをインストールし、SSL証明書を発行します。こちらはSangminさんのnoteを参考にしています。詳細はこちらをご覧ください。

次のコマンドを実行して、Cerbotのスクリプトをダウンロードします。

curl -fsSL https://gist.githubusercontent.com/gijigae/5db9f4aa1250ed5d627f138603cda6c3/raw/cccf1694511a8b3e21b6ac370630a56033565cf9/certbot.sh -o certbot.sh

続いて、ダウンロードしたスクリプトを実行し、SSL証明書を発行します。<自分ドメイン.com> はあなたのドメイン名に置き換えてください。

sudo sh certbot.sh <自分ドメイン.com>

SSL証明書と暗号キーが以下のディレクトリに作成されます。

これらのファイルを以下のコマンドで指定のディレクトリにコピーします。

【7/14修正】
証明書をコピーする方式に関して、Sangminさんから指摘をいただきました。

コピーをする形だと、証明書を発行するたびにコピーをしないといけないので、シンボリックリンクで参照する形へ変更しました。

sudo ln -s /etc/letsencrypt/live/<自分のドメイン.com>/fullchain.pem /root/dify/docker/nginx/ssl/fullchain.pem
sudo ln -s /etc/letsencrypt/live/<自分のドメイン.com>/privkey.pem /root/dify/docker/nginx/ssl/privkey.pem

2. .envファイルの作成と編集

次に、「.env」ファイルを作成します。/dify/docker ディレクトリにある「.env.example」ファイルをコピーして、「.env」ファイルを作成します。

cp /dify/docker/.env.example /dify/docker/.env

なお、「.env.example」ファイルは以下のコマンドで確認できます。

ls -la

コピーした「.env」ファイルを編集します。

sudo vim .env

編集する箇所は564行目からの部分です。以下の内容に書き換えます。

# ------------------------------
# Environment Variables for Nginx reverse proxy
# ------------------------------
NGINX_SERVER_NAME=<自分のドメイン.com>
NGINX_HTTPS_ENABLED=true  # trueに設定
# HTTP port
NGINX_PORT=80
# SSL settings are only applied when HTTPS_ENABLED is true
NGINX_SSL_PORT=443
# If HTTPS_ENABLED is true, you're required to add your own SSL certificates/keys to the `/nginx/ssl` directory
# and modify the env vars below accordingly.
NGINX_SSL_CERT_FILENAME=fullchain.pem  # 先ほどコピーした証明書ファイル名
NGINX_SSL_CERT_KEY_FILENAME=privkey.pem  # 先ほどコピーした暗号キーファイル名
NGINX_SSL_PROTOCOLS=TLSv1.1 TLSv1.2 TLSv1.3

編集が完了したら、「escキー」を押し、次に「:wq」と入力して保存して終了します。

3. HTTPS化の完了

これでDifyのHTTPS化が完了しました。これで、安全にDifyを利用することができます。

参考資料