GNU/Linux >> Linux の 問題 >  >> Ubuntu

無料でISPConfig3.1を保護することでSSL証明書を暗号化できます

重要 :ISPConfig 3.2以降には、すべてのサービスが組み込まれているため、このガイドはISPConfig3.2以降と互換性がありません。 Let's Encrypt SSL証明書はインストール中に自動的に構成されるため、サービスのLet'sEncryptを手動で構成する必要はありません。

著者:ahrasis

このチュートリアルでは、ISPconfigインターフェイス(ポート8080)、電子メールシステム(PostfixおよびDovecot / Courier)、FTPサーバー(pure-ftpd)、およびMonit用の無料のLet'sEncryptSSL証明書を作成および構成する方法を示します。このチュートリアルのコマンドはUbuntu16.04でテストされており、Debianでも機能するはずです。 CentOSで動作させるには、特定の変更が必要になる場合があります。

このガイドのヘルプは、このフォーラムスレッドで利用できます。

ISPConfigサーバーのホスト名FQDNを使用してWebサイトを作成する

サイト>Webサイト>新しいWebサイトの追加を使用して、ISPConfigパネルでサーバーのサイトを作成します。 。覚えて!これはサーバーのWebサイトであるため、サーバーの完全修飾ドメイン名(FQDN)が含まれている必要があります。このガイドでは、これを「hostname-f」と呼びます。

hostname -f

うまくいけば、サーバーを変更しなくても機能します。

オンラインでISPConfigWebサイトにアクセスする

サーバーサイトのSSLキー、証明書、チェーンファイルを発行する前に、Let's EncryptがWebサイトにアクセスできることを確認する必要があるため、サーバーサイトの準備ができてオンラインでアクセスできるかどうかを確認します。また、DNSゾーンを作成し、Let's Encryptでも検証する必要があるため、DNSゾーンが適切に伝播できるようにする必要があります。

ISPConfig 3コントロールパネル(ポート8080)のSSLの有効化

ISPConfigのセットアップ中にSSLを有効にしていない場合、つまりポート8080のコントロールパネルで有効にしている場合は、ターミナルでispconfig_update.shと入力して有効にし、SSLの場合は[はい]を選択します。これが適切なキーである必要はなく、保持する必要もありませんが、より高速に作業したいので、すべてのフィールドに入力するだけで済みます。これが完了すると、自己署名SSLがISPConfigに対してすでに有効になっているはずです。

ISPConfig 3コントロールパネル(ポート8080)のSSLの確認

ブラウザをチェックして、ポート8080でISPConfigコントロールパネルを開いて確認します。作成されたSSLファイルは自己署名されているため、この段階で警告が表示される場合がありますが、ブラウザはISPConfigでSSLが有効になっているかどうかを確認します。

>

SSLを暗号化してISPConfigWebサイトを保護する

上記が完了したら、ISPConfigパネル>サイト>Webサイト>Webサイト名に戻ります。 、[ SSL]をクリックします および暗号化しましょう ボタンをチェックして保存します-Let'sEncryptSSLファイルを作成し、サーバーサイトで有効にします。成功した場合、サーバーサイトはこのLet's Encrypt SSLファイルを使用しますが、ISPConfig8080ページは使用しません。失敗した場合、それ以上先に進むことはできません。そのため、ログファイルで手がかりを確認してください。

ISPConfig 3コントロールパネル(ポート8080)の変更

LE SSLがすでに機能している場合は、サーバーターミナルに移動し、sudo suを介してrootに移動し、次のコマンドを使用して、作成された自己署名SSLファイルをバックアップしてLet'sEncryptSSLファイルに置き換えます。

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'sEncryptのライブフォルダを使用していることに注意してください。
  • ispserver.pemがファイルを組み合わせて作成される最後の行にも注意してください。したがって、単にシンボリックリンクした他のファイルとは異なり、Let's Encryptによって自動的に更新されることはありません。したがって、これについては、の最後の部分で扱います。このガイド。
  • `hostname -f`はserver1.example.comであるため、結果は同じであるため、`hostname-f`またはserver1.example.comのいずれかを入力することにも注意してください。
同じLet'sEncryptの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。ダブコットの場合:(*これは宅配便と一緒に存在してはならないことに注意してください)

nano /etc/dovecot/dovecot.conf

を使用して、このコードが存在するかどうかを確認します
[...]
ssl_cert = </etc/postfix/smtpd.cert
ssl_key = </etc/postfix/smtpd.key
[...]
>

存在する場合はそのままにしておきます。それ以外の場合は、修正してください。いずれにせよ、run servicedovecotrestartはすでに上記で説明されています。

c。宅配便の場合:(*これは鳩小屋と一緒に存在してはならないことに注意してください)

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。純粋な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)の自動更新スクリプトを作成する

この最後のステップでは、これまでどのガイドにも見つかりませんでしたが、前に示唆したように、ispserver.pemの自動更新です。現在、Let's EncryptがサーバーのSSLファイルを自動的に更新した直後に、手動で変更する必要があります。これを見落とさないようにするには、それぞれのincronチュートリアルで提案されているように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コードをここに追加して、将来の更新を自動化してください。

次に、それを実行可能にし、incrontabの許可されたユーザーとしてrootを追加してから、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'sEncryptでサーバーを保護するのはこれで終わりだと思います。後でウェブサーバーを再起動することをお勧めします。

service nginx restart

注意:apacheを使用している場合は、それに応じてnginxをapache2に変更してください。

LE4ISPC

別の方法として、この目的のために作成されたLE4ISPCスクリプトを使用することもできます。このスクリプトは、monitを除き、ISPConfigから上記のpure-ftpdまでのnginxとapache2の両方をサポートします。使用する前に、上記の手順(1〜5)を完了し、次のことを行っておく必要があります:

1.ISPConfigを介してサーバーのWebサイトを作成しました;
2。オンラインでアクセス可能なウェブサイト;
3。 ISPConfig SSLが有効になっている(インストールまたは更新を介して);
4。ウェブサイトでLESSSLが正常に有効化されました。


Ubuntu
  1. Let's Encrypt:Certbotを使用して無料のSSL証明書を取得する

  2. トップ7の無料SSL証明書サービス

  3. SSL It! で無料の SSL 証明書を取得する方法Plesk で暗号化しましょう

  1. Let'sEncryptによるCentos上のNginxの無料SSL

  2. LetsEncryptSSL証明書を使用してcPanel対応のアカウントを保護する方法

  3. Lets Encrypt SSL/TLS証明書をcertbotで管理する方法

  1. Ubuntu20.04でLetsEncryptを使用してNginxを保護する

  2. Ubuntu20.04でLetsEncryptを使用してApacheを保護する

  3. acme.sh入門SSLクライアントを暗号化しましょう