SSL設定 · 1 min read · Sep 24, 2025
ISPConfig 3.1を無料のLet's Encrypt SSL証明書で保護する
重要: このガイドは、ISPConfig 3.2以降のバージョンには対応していません。ISPConfig 3.2以降のバージョンでは、すべてのサービスにLet’s Encryptが組み込まれています。Let’s EncryptのSSL証明書は、インストール中に自動的に構成されるため、もはや手動でサービスのためにLet’s Encryptを構成する必要はありません。
著者: ahrasis
このチュートリアルでは、ISPconfigインターフェース(ポート8080)、メールシステム(PostfixおよびDovecot/Courier)、FTPサーバー(pure-ftpd)、およびMonitのために無料のLet’s Encrypt SSL証明書を作成および構成する方法を示します。このチュートリアルのコマンドはUbuntu 16.04でテストされており、Debianでも動作するはずです。CentOSで動作させるには、特定の修正が必要になる場合があります。
このガイドに関するヘルプは、このフォーラムスレッドで利用可能です。
ISPConfigサーバーホスト名FQDNを使用してウェブサイトを作成する
ISPConfigパネルを介してサイト > ウェブサイト > 新しいウェブサイトを追加を選択して、サーバー用のサイトを作成します。忘れないでください!これはあなたのサーバーのウェブサイトであり、したがって、サーバーの完全修飾ドメイン名(FQDN)を含む必要があります。このガイドでは、これをhostname -fと呼びます。
hostname -fうまくいけば、サーバーに変更を加えなくても動作するはずです。
ISPConfigウェブサイトにオンラインでアクセスする
Let’s EncryptがSSLキー、証明書、およびチェーンファイルを発行する前に、あなたのウェブサイトがアクセス可能であることを確認する必要があるため、サーバーサイトが準備できていてオンラインでアクセス可能かどうかを確認してください。また、DNSゾーンを作成し、正しく伝播するように許可する必要があります。Let’s Encryptもそれを確認する必要があります。
ISPConfig 3コントロールパネル(ポート8080)のSSLを有効にする
ISPConfigのセットアップ中にSSLを有効にしていない場合、つまりポート8080のコントロールパネルのために、ターミナルでispconfig_update.shと入力し、SSLのために「はい」を選択して有効にします。これを適切なキーにする必要はなく、保持したくもありませんが、より早く作業したいので、すべてのフィールドに単にエンターを入力できます。これが完了すると、自己署名のSSLがすでにISPConfigに対して有効になっているはずです。
ISPConfig 3コントロールパネル(ポート8080)のSSLを確認する
ブラウザを確認して、ポート8080でISPConfigコントロールパネルを開くことで確認します。この段階では、作成されたSSLファイルが自己署名であるため、警告が表示される可能性がありますが、ブラウザはISPConfigにSSLが有効になっているかどうかを確認します。
Let’s Encrypt SSLでISPConfigウェブサイトを保護する
上記が完了したら、ISPConfigパネル > サイト > ウェブサイト > ウェブサイト名に戻り、SSLおよびLet’s Encryptのチェックボタンをクリックして保存します。これにより、Let’s Encrypt SSLファイルが作成され、サーバーサイトに対して有効になります。成功すれば、サーバーサイトはこのLet’s Encrypt SSLファイルを使用するようになりますが、ISPConfigの8080ページは使用しません。失敗した場合は、先に進むことができないため、手がかりのためにログファイルを確認してください。
ISPConfig 3コントロールパネル(ポート8080)の変更
LE SSLがすでに機能している場合は、サーバーターミナルに移動し、sudo suでrootに入り、次のコマンドを使用して作成された自己署名のSSLファイルをLet’s Encrypt SSLファイルでバックアップして置き換えます。
cd /usr/local/ispconfig/interface/ssl/
mv ispserver.crt ispserver.crt-$(date +"%y%m%d%H%M%S").bak
mv ispserver.key ispserver.key-$(date +"%y%m%d%H%M%S").bak
mv ispserver.pem ispserver.pem-$(date +"%y%m%d%H%M%S").bak
ln -s /etc/letsencrypt/live/$(hostname -f)/fullchain.pem ispserver.crt
ln -s /etc/letsencrypt/live/$(hostname -f)/privkey.pem ispserver.key
cat ispserver.{key,crt} > ispserver.pem
chmod 600 ispserver.pem- 以前にispserver.pemを作成していない場合は、バックアップとして既存のものをリネームすることを目的とした3行目を無視できます。
- Let’s Encryptのライブフォルダーを使用していることに注意してください。アーカイブフォルダーではありません。
- また、ispserver.pemがファイルを結合して作成される最後の行にも注意してください。したがって、他のファイルのように自動的に更新されることはなく、シンボリックリンクを作成しただけです。したがって、これについてはこのガイドの最後の部分で対処します。
- また、
hostname -fまたはserver1.example.comを入力することができますが、結果は同じです。なぜなら、hostname -fはserver1.example.comだからです。
他の主要なサービスに同じLet’s Encrypt SSL証明書を使用する
追加のヒントとして、ISPConfig 3のインストールを保護するために、Postfix、Dovecot、Courier、pure-FTPd、およびMonitをLet’s Encrypt SSLファイルに直接ポイントするのではなく、ispserver.keyまたは.crtまたは.pemへのシンボリックリンクを使用することをお勧めします。DovecotがすでにPostfixのSSLファイルを使用している場合は、それを無視しても安全です。詳細には、次のことを行う必要があります。
a. Postfixの場合
cd /etc/postfix/
mv smtpd.cert smtpd.cert-$(date +"%y%m%d%H%M%S").bak
mv smtpd.key smtpd.key-$(date +"%y%m%d%H%M%S").bak
ln -s /usr/local/ispconfig/interface/ssl/ispserver.crt smtpd.cert
ln -s /usr/local/ispconfig/interface/ssl/ispserver.key smtpd.key
service postfix restart
service dovecot restartb. Dovecotの場合: (*これはCourierと共存してはいけません)
nano /etc/dovecot/dovecot.confを使用してこのコードが存在するか確認します。
[...]
ssl_cert = 存在する場合はそのままにしておきます。そうでない場合は修正します。いずれにせよ、service dovecot restartはすでに上記でカバーされています。
c. Courierの場合: (*これはDovecotと共存してはいけません)
cd /etc/courier/
mv imapd.pem imapd.pem-$(date +"%y%m%d%H%M%S").bak
mv pop3d.pem pop3d.pem-$(date +"%y%m%d%H%M%S").bak
ln -s /usr/local/ispconfig/interface/ssl/ispserver.pem imapd.pem
ln -s /usr/local/ispconfig/interface/ssl/ispserver.pem pop3d.pem
service courier-imap-ssl stop
service courier-imap-ssl start
service courier-pop-ssl stop
service courier-pop-ssl startd. pure-FTPdの場合:
cd /etc/ssl/private/
mv pure-ftpd.pem pure-ftpd.pem-$(date +"%y%m%d%H%M%S").bak
ln -s /usr/local/ispconfig/interface/ssl/ispserver.pem pure-ftpd.pem
chmod 600 pure-ftpd.pem
service pure-ftpd-mysql restarte. Monitの場合: (サーバーにインストールされている場合)
nano /etc/monit/monitrcここでも、pure-ftpdのために作成したispserver.pemへのシンボリックリンクを追加します。
[...]
set httpd port 2812 and
SSL ENABLE
PEMFILE /etc/ssl/private/pure-ftpd.pem
allow admin:'secretpassword'
[...]そして、monitを再起動します。
service monit restartISPConfig pemファイル(ispserver.pem)の自動更新スクリプトを作成する
この最後のステップでは、これまでのガイドには見つからなかった自動更新の方法です。現在、Let’s EncryptがサーバーのSSLファイルを自動的に更新した後、手動で変更する必要があります。これを見落とさないようにするために、提案されたincronをインストールし、ispserver.pemファイルを自動的に更新するスクリプトを作成することをお勧めします。
ターミナルコマンドを介して、incronをインストールし、スクリプトファイルを作成してnanoで編集します。
apt install -y incron
nano /etc/init.d/le_ispc_pem.shle_ispc_pem.shに次の内容を追加します。
#!/bin/sh
### BEGIN INIT INFO
# Provides: LE ISPSERVER.PEM AUTO UPDATER
# Required-Start: $local_fs $network
# Required-Stop: $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: LE ISPSERVER.PEM AUTO UPDATER
# Description: Update ispserver.pem automatically after ISPC LE SSL certs are renewed.
### END INIT INFO
cd /usr/local/ispconfig/interface/ssl/
mv ispserver.pem ispserver.pem-$(date +"%y%m%d%H%M%S").bak
cat ispserver.{key,crt} > ispserver.pem
chmod 600 ispserver.pem
chmod 600 /etc/ssl/private/pure-ftpd.pem
service pure-ftpd-mysql restart
service monit restart
service postfix restart
service dovecot restart
service nginx restart- 一部の人はmonitをインストールしないため、安全に削除できます。上記のスクリプトを適宜調整してください。
- マルチサーバーセットアップの場合は、投稿#203を参照し、将来の更新を自動化するためにここに提供されたscpコードを追加してください。
次に、実行可能にし、rootをincrontabの許可ユーザーとして追加し、incrontabファイルを編集します。
chmod +x /etc/init.d/le_ispc_pem.sh
echo "root" >> /etc/incron.allow
incrontab -eincrontabに次の行を追加します。
/etc/letsencrypt/archive/$(hostname -f)/ IN_MODIFY ./etc/init.d/le_ispc_pem.shサービスの再起動
Let’s Encryptでサーバーを保護するためのこれでほぼ完了です。その後、ウェブサーバーを再起動することをお勧めします。
service nginx restart覚えておいてください: apacheを使用している場合は、nginxをapache2に変更してください。
LE4ISPC
代替手段として、nginxおよびapache2の両方をサポートするために作成されたLE4ISPCスクリプトを使用することをお勧めします。これには、monitを除いて、上記のpure-ftpdまでのISPConfigからのすべてが含まれています。使用する前に、上記の手順(1-5)を完了し、次のことを確認してください。
- ISPConfigを介してサーバーのウェブサイトを作成しました;
- ウェブサイトがオンラインでアクセス可能です;
- ISPConfig SSLが有効になっています(インストールまたは更新を介して);
- ウェブサイトに対してLE SSLが正常に有効になっています。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。