Linux CnetOS7

CentOS7 WordPress SSL(Let's Encrypt)の設定

CentOS7にWordPressをインストールし、Let's EncryptでSSL対応したメモです。

WordPressはこのサイトでも利用しているCMSです。今回はCentOS7にWordPressをインストールし、無料で取得が出来るSSL証明書(DV)も併せて設定します。


利用OS
CentOS Linux release 7.4.1708 Minimal

設定サイト
test.server-network-note.net
※設定中は上記自分のサイトに読み替えて設定して下さい。


CentOS7をダウンロード https://www.centos.org/download/ から Mnimal ISOをダウンロード

CentOS7 のインストールは省略


selinuxの無効化 と パッケージの最新化

/etc/selinux/config の SELINUX=enforcing → SELINUX=disabled に変更

 

パッケージを最新に更新

再起動


Apache/mod_ssl/php/MariaDB インストール

 

パッケージをインストール

 

phpのタイムゾーンを変更

/etc/php.ini の date.timezone を 修正

MariaDB の文字コードを utf-8 に変更

/etc/my.cnf.d/client.cnf に上記を追加

/etc/my.cnf.d/server.cnf [mysqld]の設定項目にcharacter-set-server = utf8を追加


MariaDB 起動 WordPress用のdatabaseを作成

MariaDB起動

Statusが Active: active (running) が出ていたら起動成功

MariaDBの自動起動を設定

MariaDBのインストール

Passwordを設定しますが、MariaDBのrootパスワードになります。後ほど利用します。

WordPress用のDBとDB接続用のユーザを作成します。

コマンド実行時にパスワードが聞かれますが、先ほど設定したMariaDBのパスワードを入力すると接続できます。
今回のDBやDB用のユーザおよびパスワードはwordpress_* で設定していますので、任意に変更して下さい。パスワードなどは複雑な文字列を推奨します。


WordPressインストールおよびApache設定

/var/www/html 配下に最新の WordPress 日本語版をダウンロードします。

ダウンロードしたファイルを解凍、展開します。

WordPressの設定ファイルを編集します。(sampleをコピーして編集します。)
ファイルは先ほど設定したデータベースの設定に併せて変更します。

インストールしたWordPressのファイルをApacheユーザへ変更

Apacheの環境設定

/etc/httpd/conf/httpd.conf を下記に編集

Apache起動

Statusが Active: active (running) が出ていたら起動成功

enabledが表示されていたら自動起動設定OK

firewallの設定

http(80)を追加します。 --list-services にhttpが追加されていたら設定完了です。

ブラウザから http://test.server-network-note.net/ へ接続

接続が出来たら WordPressのインストールは成功です。

Let's Encrypt のインストール

Let's Encryptとは無料のSSL証明書を発行するサービスです。詳細は下記サイトをどうぞ。

https://letsencrypt.jp/

Let's Encryptをインストールします。

各コマンドで完了しました!が出ていたらインストール完了です。

証明書の作成

1回目の問い合わせにメールアドレスを入力 2回目は利用規約同意でY 3回目はLet's Encryptプロジェクトにメールアドレスを共用するか問い合わせなのでN (Yでも問題ないです)

作成された証明書は下記に保存されています。

/etc/httpd/conf.d/ssl.conf を下記のように変更します。

続いて設定した証明書を反映させる為にApacheを再起動し、ファイアウォールにhttps(443)を追加します。

設定が完了しました。 ブラウザで https://test.server-network.net/ にアクセスしてみましょう。

Chrome の場合 https で正しい証明書が作成されていたら、上のように「保護された通信」が表示されます。


SSL証明書の更新
Let'sEncryptで取得した証明書の期限は3ヶ月になります。それまでに更新する必要があります。

crontab で毎週水曜日 3時15分に更新する設定を入れます。

毎週チェックは実施しますが、実際の更新は期限が切れる30日前にならないと更新されません。強制的に更新するにはオプションとして --force-renewal が必要になります。crontab に設定される前に実際に更新出来るかテストをお勧めします。

上記が --force-renewal を入れて実効した結果です。Congratulations, all renewals succeeded.が出ていたら更新に成功です。


設定は以上です。SSL証明書が無料で取得し更新は自動です。非常に便利です。よかったら皆さんも設定して見て下さい。

-Linux, CnetOS7
-, , ,