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

Ubuntu18.04にLet'sEncryptFreeSSLを使用してLAMPサーバーをインストールします

LAMPは、動的で高性能なWebサイトをホストするために使用される無料のオープンソースWeb開発プラットフォームです。 Linux、Apache、MySQL / MariaDB、PHPの4つのオープンソースコンポーネントで構成されています。 LAMPは、オペレーティングシステムとしてLinux、ウェブサーバーとしてApache、データベースとしてMySQL / MariaDB、スクリプト言語としてPHPを使用しています。

このチュートリアルでは、LAMPをインストールし、Ubuntu 18.04でLet’sEncryptの無料SSLを使用して保護する方法を説明します。

前提条件

  • Atlantic.Netクラウドプラットフォーム上の新しいUbuntu18.04VPS。
  • サーバーのIPアドレスを指す有効なドメイン名。このチュートリアルでは、example.comをドメインとして使用します。

ステップ1–Atlantic.Netクラウドサーバーを作成する

まず、Atlantic.Netクラウドサーバーにログインします。オペレーティングシステムとしてUbuntu18.04を選択し、少なくとも2GBのRAMを搭載した新しいサーバーを作成します。 SSH経由でクラウドサーバーに接続し、ページの上部で強調表示されているクレデンシャルを使用してログインします。

Ubuntu 18.04サーバーにログインしたら、次のコマンドを実行して、ベースシステムを最新の利用可能なパッケージで更新します。

apt-get update -y

ステップ2–ApacheWebサーバーのインストール

まず、次のコマンドを使用してApacheWebサーバーをインストールします。

apt-get install apache2 -y

インストールが完了したら、次のコマンドを使用してApacheサービスを開始し、システムの再起動後に開始できるようにします。

systemctl start apache2
systemctl enable apache2

次に、次のコマンドを使用してApacheWebサーバーを確認します。

systemctl status apache2

これで、Apache Webサーバーが実行され、ポート80でリッスンします。Webブラウザーを開き、URL http://your-server-ipを入力します。次の画面にApacheのデフォルトページが表示されます。

これは、ApacheWebサーバーが期待どおりに機能していることを意味します。

ステップ3–MariaDBデータベースサーバーのインストール

MariaDBは、MySQLリレーショナルデータベース管理システムの最も人気のあるフォークです。次のコマンドを実行してインストールできます:

apt-get install mariadb-server mariadb-client -y

インストールしたら、MariaDBサービスを開始し、次のコマンドを使用してシステムの再起動後に開始できるようにします。

systemctl start mariadb
systemctl enable mariadb
mysql_secure_installation

このスクリプトは、以下に示すように、rootパスワードを設定し、匿名ユーザーを削除し、rootログインをリモートで禁止し、テストデータベースとアクセスを削除します。

Enter current password for root (enter for none): Press the Enter key
Set root password? [Y/n]: Y
New password: Enter password
Re-enter new password: Repeat password
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]:  Y
Reload privilege tables now? [Y/n]:  Y

ステップ4–PHPのインストール

apt-get install php php-cli php-mysql php-curl php-zip libapache2-mod-php -y

すべてのパッケージがインストールされたら、php.iniファイルを開き、いくつかの必要な設定を微調整します。

nano /etc/php/7.2/apache2/php.ini

次の行を変更します。以下の値は、LAMP環境に最適な設定です。

memory_limit = 256M
upload_max_filesize = 100M
max_execution_time = 360
date.timezone = America/Chicago

ファイルを保存して閉じます。次に、ApacheWebサーバーを再起動して構成を適用します。

systemctl restart apache2

次に、Apacheドキュメントのルートディレクトリにinfo.phpを作成して、ApacheでPHPをテストします。

nano /var/www/html/info.php

次の行を追加します:

<?php phpinfo( ); ?>

ファイルを保存して閉じます。次に、Webブラウザーを開き、URLhttp://your-server-ip/info.phpにアクセスします。次の画面に示すデフォルトのPHPテストページが表示されます。

テスト後、セキュリティ上の理由からinfo.phpファイルを削除することをお勧めします。

rm -rf /var/www/html/info.php

ステップ5–仮想ホストの作成

まず、ドメインexample.comのindex.htmlファイルを作成します。

mkdir /var/www/html/example.com
nano /var/www/html/example.com/index.html

次の行を追加します:

<html>
<title>example.com</title>
<h1>Welcome to example.com Website</h1>
<p>This is my LAMP server</p>
</html>

ファイルを保存して閉じます。次に、example.comディレクトリの所有権を変更し、必要な権限を付与します。

chown -R www-data:www-data /var/www/html/example.com
chmod -R 755 /var/www/html/example.com

次に、ドメインのApache仮想ホスト構成ファイルexample.comを作成する必要があります。

nano /etc/apache2/sites-available/example.com.conf

次の行を追加します:

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName example.com
    DocumentRoot /var/www/html/example.com
    DirectoryIndex index.html
    ErrorLog ${APACHE_LOG_DIR}/example.com_error.log
    CustomLog ${APACHE_LOG_DIR}/example.com_access.log combined
</VirtualHost>

終了したら、ファイルを保存して閉じます。

上記のファイルの各パラメータの簡単な説明は次のとおりです。

  • ServerAdmin: サーバー管理者のメールアドレスを指定してください。
  • サーバー名: サーバーのIPアドレスに関連付けられているドメイン名。
  • DocumentRoot: Webサイトのコンテンツの場所を指定します。
  • DirectoryIndex: ディレクトリにアクセスしたときに表示するデフォルトのページを指定します。
  • ErrorLog: エラーログファイルの場所。
  • CustomLog: アクセスログファイルの場所。

次に、仮想ホストを有効にし、Apache Webサービスを再起動して、構成を適用します。

a2ensite example.com
systemctl restart apache2

Webサイトをテストするには、Webブラウザーを開き、URLhttp://example.comを入力します。次のページにリダイレクトされます:

ステップ6–Let'sEncryptを使用してWebサイトを保護する

この時点で、Webサイトは正常に機能していますが、セキュリティで保護されていません。 Let'sEncryptの無料SSLで保護する必要があります。

まず、サーバーにCertbotクライアントをインストールする必要があります。 Certbotは使いやすいクライアントであり、Let’s Encryptから証明書をダウンロードし、この証明書を使用するようにApacheWebサーバーを構成するために使用できます。

apt-get install software-properties-common apt-transport-https ca-certificates -y
add-apt-repository ppa:certbot/certbot

リポジトリが追加されたら、リポジトリを更新し、次のコマンドを使用してCertbotをインストールします。

apt-get update -y
apt-get install certbot python-certbot-apache -y

次に、次のコマンドを実行して、ウェブサイトexample.com用のLet’sEncryptの無料SSLをインストールします。

certbot --apache -d example.com

以下に示すように、メールアドレスを提供し、利用規約に同意するよう求められます。

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email protected]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for example.com
Enabled Apache rewrite module
Waiting for verification...
Cleaning up challenges
Created an SSL vhost at /etc/apache2/sites-available/example.com-le-ssl.conf
Deploying Certificate to VirtualHost /etc/apache2/sites-available/example.com-le-ssl.conf
Enabling available site: /etc/apache2/sites-available/example.com-le-ssl.conf

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

次に、オプション2を選択し、Enterキーを押して、Let’s Encrypt証明書をダウンロードし、この証明書を使用するようにApacheWebサーバーを構成します。インストールプロセスが完了すると、次の出力が表示されます。

Enabled Apache rewrite module
Redirecting vhost in /etc/apache2/sites-enabled/example.com.conf to ssl vhost in /etc/apache2/sites-available/example.com-le-ssl.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://example.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/example.com/privkey.pem
   Your cert will expire on 2019-10-22. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

次に、Webブラウザーを開き、URLhttps://example.comを使用してWebサイトに安全にアクセスします。

結論

上記のチュートリアルでは、Ubuntu18.04VPSにLAMPサーバーをインストールする方法を学びました。また、Let’sEncryptの無料SSLを使用してLAMPサーバーを保護する方法も学びました。これで、LAMPサーバーを簡単にインストールし、VPSホスティングサービスを使用してUbuntu 18.04でLet’sEncryptの無料SSLを使用してサーバーを保護できます。


Linux
  1. Nginxを使用してUbuntu18.04にLet'sEncryptSSLをインストールする方法

  2. Ubuntu20.04にPHP7.4でLAMPをインストールする方法

  3. Debian 11 に Let’s Encrypt SSL を Apache でインストールする方法

  1. Apache 2、PHP 5、MySQLを使用したUbuntu 14.10 LAMPサーバーチュートリアル(MariaDB)

  2. Ubuntu20.04にNGINXと無料のLet'sEncryptSSLを使用してGiteaをインストールする方法

  3. Ubuntu 20.04 で Apache を使用して PHP-FPM をインストールする方法

  1. (MySQLの代わりに)Apache 2、PHP 5、MariaDBを使用したUbuntu15.04LAMPサーバーチュートリアル

  2. (MySQLの代わりに)Apache 2.4、PHP 5、MariaDBを使用したUbuntu15.10LAMPサーバーチュートリアル

  3. Apacheと無料のLetsEncryptSSLを使用してUbuntu20.04にConcrete5CMSをインストールする方法