このチュートリアルでは、StartSSLの無料のClass1 SSL証明書を使用して、ISPConfig 3のインストールを保護し、自己署名証明書の警告を取り除く方法を示します。このガイドでは、ISPConfig Webインターフェイス(Apache2とnginxの両方)、Postfix(TLS接続の場合)、CourierとDovecot(POP3とIMAPの場合)、およびPureFTPd(TLS / FTPES接続の場合)にSSL証明書を使用する方法について説明します。 monitをインストールし、そのWebインターフェイスにHTTPSを使用している場合は、StartSSL証明書を使用する方法も示します。このガイドは、DebianまたはUbuntuを使用することを前提としています。原則はISPConfig3でサポートされている他のディストリビューションでも同じですが、パスが異なる場合があります。
2017年12月20日更新
StartSSL CAはブラウザによって信頼されなくなり、2018年1月1日にSSL証明書の発行を停止します。今日利用できる優れた代替手段があります。StartSSLの代わりにLet'sEncryptを使用して無料のSSL証明書を取得してください。ここでは、ISPConfig、Postfix、Dovecot、Courier、Monit、およびPureFTPDのSSL証明書を暗号化する方法について説明しています。
https://www.howtoforge.com/community/threads/securing-ispconfig-3-control-panel-port-8080-with-lets-encrypt-free-ssl.75554/
1予備メモ
http://www.ispconfig.org/ispconfig-3/documentation/のガイドの1つを使用してシステムをセットアップしたと思います。前に述べたように、このガイドではDebian / Ubuntuに集中しますが、ISPconfig 3でサポートされている他のディストリビューションでも機能するはずです(ただし、いくつかのパスを調整する必要がある場合があります)。
ここではホスト名server1.example.comを使用します。 StartSSLを使用すると、メインドメインと1つのサブドメインのClass1証明書を作成できるため、example.comとserver1.example.comの証明書を作成します。つまり、すべてのサービス(ISPConfig Webインターフェイス、Postfix、Courier / Dovecot、PureFTPDなど)にメインドメインexample.comまたはサブドメインserver1.example.comを使用するようにユーザーに指示する必要があります。そうしないと、証明書の警告が表示されます。 。
サービスに異なるホスト名を使用する場合(Postfixの場合はmail.example.com、ISPConfigの場合はispconfig.example.comなど)、StartSSLからClass2証明書を取得することをお勧めします。無料ではありませんが、複数のサブドメイン(* .example.comを使用してすべてのサブドメイン用に作成することもできます)や複数のドメイン用に作成することもできます。手順は同じですが、StartSSLのsub.class1.server.ca.pem中間証明書を使用する場合は、代わりにsub.class2.server.ca.pemを使用する必要があります。チュートリアル全体でこの違いの概要を説明します。
このチュートリアルのすべてのステップをroot権限で実行しているので、rootとしてログインしていることを確認してください。 Ubuntuを使用している場合は、実行します...
sudo su
...ルート権限を取得します。
2証明書署名要求(CSR)の作成
StartSSLからSSL証明書を取得するには、証明書署名要求(CSR)が必要です。とにかくISPConfigインストーラー(バージョン> =3.0.4の場合)がこれを作成するので、すべてのサービス(ISPConfig、Postfixなど)を暗号化するための基礎としてこのCSRを使用します。
ISPConfigバージョン3.0.4以降、ISPConfigインストーラーはISPConfig WebインターフェイスにSSL暗号化を使用するオプションを提供し、Enterキーまたはyキーを使用して次の質問に答えると、CSRを含む自己署名証明書(4096ビット)を作成します。
>ISPConfigウェブインターフェースへの安全な(SSL)接続が必要ですか(y、n)[y]:<-ENTER
ISPConfigインストーラーが正しいデータを使用してCSRを作成するようにするには、次の質問が表示されたときに正しい詳細を入力する必要があります。
RSA秘密鍵の生成、4096ビット長のモジュラス
....................................。 ....................... ++
....................。 ................................................ ++
eは65537(0x10001)です
証明書リクエストに組み込まれる情報を入力するように求められます
。
入力しようとしているのは、いわゆる名前です。識別名またはDN。
かなりの数のフィールドがありますが、空白のままにすることができます
一部のフィールドには、デフォルト値があります。
「。」と入力すると、フィールド空白のままになります。
-----
国名(2文字のコード)[AU]:<-DE
州名または州名(フルネーム)[一部の州] :<-Niedersachsen
地域名(例:市)[]:<-Lueneburg
組織名(例:会社)[Internet Widgits Pty Ltd]:<-My Company Ltd.
組織単位名(例:セクション)[]:<-IT
共通名(例:あなたの名前)[]:<-example.com
メールアドレス[]:<- [メール保護cted]
次の「追加」属性を入力してください
証明書リクエストとともに送信されます
チャレンジパスワード[]:<-ENTER
オプションの会社名[]:<-ENTER
RSAキーの書き込み
最初に間違ったデータで証明書を作成した場合は、実行してISPConfigを更新できます...
ispconfig_update.sh
...、または、最新バージョンがすでにインストールされている場合は、次のコマンドを実行します。
cd /tmp
wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
tar xvfz ISPConfig-3-stable.tar.gz
cd ispconfig3_install/install
php -q update.php
これにより、次の質問に「はい」で答えることで、ISPConfig3Webインターフェイスの新しい証明書を作成できます。
新しいISPConfigSSL証明書を作成します(はい、いいえ)[いいえ]:<-はい
3.0.4より前のバージョンのISPConfigを使用している場合は、実行して最新の安定バージョンにアップグレードする必要があります...
ispconfig_update.sh
これにより、次の質問に「はい」で答えることで、ISPConfig3WebインターフェイスのSSL接続を作成することもできます。
新しいISPConfigSSL証明書を作成します(はい、いいえ)[いいえ]:<-はい
上で概説したように、正しい詳細を入力してください。
その後、/ usr / local / ispconfig / interface / ssl /ディレクトリにSSLキー、CSR、および自己署名証明書が必要になります。
ls -l /usr/local/ispconfig/interface/ssl/
[email protected]:~# ls -l /usr/local/ispconfig/interface/ssl/
total 16
-rwxr-x--- 1 ispconfig ispconfig 2423 Jan 16 13:29 ispserver.crt
-rwxr-x--- 1 ispconfig ispconfig 1777 Jan 16 13:29 ispserver.csr
-rwxr-x--- 1 ispconfig ispconfig 3243 Jan 16 13:29 ispserver.key
-rwxr-x--- 1 ispconfig ispconfig 3311 Jan 16 13:28 ispserver.key.secure
[email protected]:~#
このチュートリアルで必要なのは、秘密鍵(ispserver.key)とCSR(ispserver.csr)だけです。 ispserver.crtをStartSSLのClass1証明書に置き換えます。 ispserver.key.secureを無視できます。
次のように、コマンドラインでispserver.keyとispserver.csrを作成することもできます。
cd /usr/local/ispconfig/interface/ssl/
openssl req -new -newkey rsa:4096 -days 365 -nodes -keyout ispserver.key -out ispserver.csr
(これにより、StartSSLから署名付き証明書を取得するため、重要ではないispserver.crtは提供されません。)
ispserver.csrはこれに似ている必要があります(これは私が使用する実際のCSRであるため、その大部分を削除しました):
cat /usr/local/ispconfig/interface/ssl/ispserver.csr
-----BEGIN CERTIFICATE REQUEST----- MIIC7TCCAdUCAQAwgacxCzAJBgxxxxxxAkRFMRYwFAYDVQQIDA1OaWVkZXJzYWNo xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 9Z5RhXTfOz8F2wsNH5yP9eqkVlkYKpIwyUHoZtUSp+xz -----END CERTIFICATE REQUEST----- |
3StartSSLから無料のClass1証明書を取得する
次に、http://www.startssl.com/にアクセスして、アカウントを作成します。ドメインを検証した後([検証ウィザード]タブで)、[証明書ウィザード]タブで証明書を要求できます。[証明書ターゲット]ドロップダウンフィールドから[WebサーバーSSL/TLS証明書]を選択します。
すでに秘密鍵とCSRがあるので、次のステップをスキップできます。[スキップ]>>:
をクリックします。
次のページで、CSR、つまり/usr/local/ispconfig/interface/ssl/ispserver.csrファイルの内容を入力します(----- BEGIN CERTIFICATE REQUEST -----で始まり、最後に----- END CERTIFICATE REQUEST -----):
次に、ウィザードの残りの部分に従います。証明書が作成されるドメインと1つのサブドメインを要求されます。すべてのサービスにserver1.example.comを使用する場合は、ドメインとしてexample.comを入力し、サブドメインとしてserver1を入力します。
数分後、新しい証明書の準備ができたことを知らせるメールが届きます。 [ツールボックス]>[証明書の取得]に移動し、証明書を選択します:
StartSSLのWebインターフェースから証明書をコピーします...
...そして、元のispserver.crtファイルのバックアップを作成し、StartSSL Class1証明書を(空の)ispserver.crtファイルに貼り付けます。
mv /usr/local/ispconfig/interface/ssl/ispserver.crt /usr/local/ispconfig/interface/ssl/ispserver.crt_bak
vi /usr/local/ispconfig/interface/ssl/ispserver.crt
-----BEGIN CERTIFICATE----- MIIHMTCCBhmgAwIBAgIDxxxxxx0GCSqGSIb3DQEBBQUAMIGMMQswCQYDVQQGEwJJ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx c2x1wonVRVmKovt2OuM1ZqZw0Ynk -----END CERTIFICATE----- |
次に、StartSSLのルートCAとClass1中間サーバーCAをダウンロードします。
cd /usr/local/ispconfig/interface/ssl
wget https://www.startssl.com/certs/ca.pem
wget https://www.startssl.com/certs/sub.class1.server.ca.pem
(Class2証明書を使用する場合は、sub.class1.server.ca.pemではなくsub.class2.server.ca.pemをダウンロードしてください。)
両方のファイルの名前を変更します:
mv ca.pem startssl.ca.crt
mv sub.class1.server.ca.pem startssl.sub.class1.server.ca.crt
(Class2証明書を使用する場合は、2番目のコマンドを調整します。)
一部のサービスでは、次のように作成する.pemファイルが必要です(ここでも、Class2証明書を使用する場合は、コマンドを調整してください):
cat startssl.sub.class1.server.ca.crt startssl.ca.crt > startssl.chain.class1.server.crt
cat ispserver.{key,crt} startssl.chain.class1.server.crt > ispserver.pem
chmod 600 ispserver.pem
4 ISPConfigインターフェイス(Apache2)
ApacheでISPConfig3を使用する場合は、/ etc / apache2 / sites-available / ispconfig.vhost ...
を開きます。vi /etc/apache2/sites-available/ispconfig.vhost
...そしてSSLCertificateChainFile/usr/local/ispconfig/interface/ssl/startssl.sub.class1.server.ca.crtという行を#SSL Configurationセクションに追加します(いつでもその行を再度追加する必要があることに注意してください) ISPConfigを更新します!):
[...] # SSL Configuration SSLEngine On SSLCertificateFile /usr/local/ispconfig/interface/ssl/ispserver.crt SSLCertificateKeyFile /usr/local/ispconfig/interface/ssl/ispserver.key ## must be re-added after an ISPConfig update!!! SSLCertificateChainFile /usr/local/ispconfig/interface/ssl/startssl.sub.class1.server.ca.crt [...] |
(Class2証明書を使用する場合は、これを調整してください。)
その後、Apacheを再起動します:
/etc/init.d/apache2 restart
5 ISPConfigインターフェイス(nginx)
nginxでは、中間証明書をispserver.crtファイルに追加するだけです(Class2証明書を使用する場合はこれを調整してください)...
cat /usr/local/ispconfig/interface/ssl/startssl.sub.class1.server.ca.crt >> /usr/local/ispconfig/interface/ssl/ispserver.crt
...そしてnginxをリロードします:
/etc/init.d/nginx reload
6ポストフィックス
Postfixの場合、/ etc / postfix / smtpd.certと/etc/postfix/smtpd.keyのバックアップを作成し、/ usr / local / ispconfig / interface / ssl/ispserver.crtと/usr/ local /ispconfig/へのシンボリックリンクを作成します。 interface / ssl / ispserver.key:
cd /etc/postfix
mv smtpd.cert smtpd.cert_bak
mv smtpd.key smtpd.key_bak
ln -s /usr/local/ispconfig/interface/ssl/ispserver.crt smtpd.cert
ln -s /usr/local/ispconfig/interface/ssl/ispserver.key smtpd.key
次に、smtpd_tls_CAfileディレクティブを/etc/postfix/main.cfに追加します...
postconf -e 'smtpd_tls_CAfile = /usr/local/ispconfig/interface/ssl/startssl.chain.class1.server.crt'
(Class2証明書を使用する場合は、これを調整してください。)
...そしてPostfixを再起動します:
/etc/init.d/postfix restart
7ダブコット
/etc/dovecot/dovecot.confを開きます...
vi /etc/dovecot/dovecot.conf
Dovecot 1.xの場合:
...そして行ssl_ca_file=/usr/local/ispconfig/interface/ssl/startssl.chain.class1.server.crtを追加します(ISPConfigを更新するたびにその行を再追加する必要があることに注意してください!):
[...] ssl_cert_file = /etc/postfix/smtpd.cert ssl_key_file = /etc/postfix/smtpd.key ## must be re-added after an ISPConfig update!!! ssl_ca_file = /usr/local/ispconfig/interface/ssl/startssl.chain.class1.server.crt [...] |
(Class2証明書を使用する場合は、これを調整してください。)
Dovecot 2.xの場合:
...そして行ssl_ca_file=/usr/local/ispconfig/interface/ssl/startssl.chain.class1.server.crtを追加します(ISPConfigを更新するたびにその行を再追加する必要があることに注意してください!):
[...] ssl_cert = </etc/postfix/smtpd.cert ssl_key = </etc/postfix/smtpd.key ## must be re-added after an ISPConfig update!!! ssl_ca = </usr/local/ispconfig/interface/ssl/startssl.chain.class1.server.crt [...] |
(Class2証明書を使用する場合は、これを調整してください。)
その後、Dovecotを再起動します:
/etc/init.d/dovecot restart
8クーリエ
/etc/courier/imapd.pemおよび/etc/courier/pop3d.pemのバックアップを作成します...
mv /etc/courier/imapd.pem /etc/courier/imapd.pem.bak
mv /etc/courier/pop3d.pem /etc/courier/pop3d.pem.bak
...次に、それらを/usr/local/ispconfig/interface/ssl/ispserver.pemにシンボリックリンクします:
ln -s /usr/local/ispconfig/interface/ssl/ispserver.pem /etc/courier/imapd.pem
ln -s /usr/local/ispconfig/interface/ssl/ispserver.pem /etc/courier/pop3d.pem
その後、Courierを再起動します:
/etc/init.d/courier-imap-ssl stop
/etc/init.d/courier-imap-ssl start
/etc/init.d/courier-pop-ssl stop
/etc/init.d/courier-pop-ssl start
9 PureFTPd
/etc/ssl/private/pure-ftpd.pemのバックアップを作成します...
cd /etc/ssl/private/
mv pure-ftpd.pem pure-ftpd.pem_bak
...そして/usr/local/ispconfig/interface/ssl/ispserver.pemへのシンボリックリンクを作成します:
ln -s /usr/local/ispconfig/interface/ssl/ispserver.pem pure-ftpd.pem
その後、PureFTPdを再起動します:
/etc/init.d/pure-ftpd-mysql restart
10モニット
MonitはISPConfig3の「パーフェクトサーバー」セットアップの一部ではありませんが、Monitをインストールしてhttps経由でWebインターフェイスを使用している場合、証明書の警告が消えるようにStartSSL証明書を使用する方法は次のとおりです。
/ etc / monit / monitrc ...
を開きますvi /etc/monit/monitrc
...そしてPEMFILE行に/usr/local/ispconfig/interface/ssl/ispserver.pemを指定します。例:次のように:
[...] set httpd port 2812 and SSL ENABLE PEMFILE /usr/local/ispconfig/interface/ssl/ispserver.pem allow admin:secret [...] |
後でmonitを再起動します:
/etc/init.d/monit restart
11リンク
- StartSSL:http://www.startssl.com/
- ISPConfig:http://www.ispconfig.org/
FalkoTimmeはの所有者 Timme Hosting(超高速nginx Webホスティング)。彼はHowtoForge(2005年以降)の主任メンテナーであり、ISPConfig(2000年以降)のコア開発者の1人です。彼はまた、O'Reillyの本「LinuxSystemAdministration」にも寄稿しています。