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 restart

b. 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 start

d. 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 restart

e. 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 restart

ISPConfig pemファイル(ispserver.pem)の自動更新スクリプトを作成する

この最後のステップでは、これまでのガイドには見つからなかった自動更新の方法です。現在、Let’s EncryptがサーバーのSSLファイルを自動的に更新した後、手動で変更する必要があります。これを見落とさないようにするために、提案されたincronをインストールし、ispserver.pemファイルを自動的に更新するスクリプトを作成することをお勧めします。

ターミナルコマンドを介して、incronをインストールし、スクリプトファイルを作成してnanoで編集します。

apt install -y incron  
nano /etc/init.d/le_ispc_pem.sh

le_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 -e

incrontabに次の行を追加します。

/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)を完了し、次のことを確認してください。

  1. ISPConfigを介してサーバーのウェブサイトを作成しました;
  2. ウェブサイトがオンラインでアクセス可能です;
  3. ISPConfig SSLが有効になっています(インストールまたは更新を介して);
  4. ウェブサイトに対してLE SSLが正常に有効になっています。
Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。