オレオレ証明書をWordPress管理画面で有効化
2度目の投稿内容なのに既にベトナムとは全く関係が無いという…。
それはさておき、このブログを立てるにあたって以下の作業を実施しました。
- オレオレ証明書の作成
- WordPress管理画面でSSLを有効化(Apache)
理由は普通にセキュリティ対策です。
某VPSとかWordPressとか狙われやすいらしいので一応…。
過去に同じ設定をしたことがあるので楽勝楽勝♪
と、油断していたら案の定バッチリ忘れていて時間をくわれました。
次回また設定する時なんかに(きっと忘れて)めんどくさいので、今回はその設定方法を自分流に余計な情報(余計ではないのだけど)を削ぎ落としてメモしておきます。
1. オレオレ証明書の作成
- 秘密鍵を作成
opensslでRSA暗号方式、2048bitの秘密鍵(.key)を作成。
ファイル名は任意で。
1 2 |
$cd /etc/pki/tls/certs $openssl genrsa -out xxxx.key 2048 |
- 証明書を作成
さっき作った秘密鍵(.key)から今度は1年間(365日)有効な証明書(.crt)を作成。
いくつか問われますが、オレオレなので適当に。
※Common Name はきちんとSSLを有効にしたいドメイン名を入力。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
$sudo openssl req -new -out xxxx.crt -key xxxx.key -x509 -days 365 You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [XX]:JP // ベトナムだけど… State or Province Name (full name) []:Tokyo // ベトナムだけど気にしない Locality Name (eg, city) [Default City]:yyyyy // オレオレだし適当に Organization Name (eg, company) [Default Company Ltd]: // エンター! Organizational Unit Name (eg, section) []: // エンター! Common Name (eg, your name or your server's hostname) []:hogehoge.com // ※SSLを有効にしたいドメイン名を入力 Email Address []: // エンター! Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: // エンター! An optional company name []: // エンター! |
(補足)
オレオレ証明書ではなく、外部認証局の証明書をもらうためには証明書発行要求(.csr)が必要。
その時は以下のコマンドでcsrファイルを作成。
ここでもいくつか問われますが、内容は証明書(.crt)作成時と同じ。
1 |
$sudo openssl req -new -key xxxx.key -out xxxx.csr |
ここまでいけたら秘密鍵(.key)を場所移動。
1 |
$sudo mv /etc/pki/tls/certs/xxxx.key /etc/pki/tls/private |
2. WordPress管理画面でSSLを有効化
- Apacheの設定
まず、mod_sslが無ければインストール。
1 |
$sudo yum install mod_ssl |
次に、/Apacheディレクトリ/conf.d/ssl.conf の内容を変更。
1 2 3 4 5 6 |
$sudo vi /Apacheディレクトリ/conf.d/ssl.conf // 以下の3項目を変更 DocumentRoot "wordpressへのパス" SSLCertificateFile /etc/pki/tls/certs/xxxx.crt SSLCertificateKeyFile /etc/pki/tls/private/xxxx.key |
そして、Apacheを再起動。
1 |
$sudo service httpd restart |
- iptablesの設定
IPテーブルでHTTPSの通信を許可するように設定。
この時に指定するポート番号は ssl.conf の設定内容と揃える。
1 2 |
$iptables -A INPUT -p tcp -m tcp --dport *** -j ACCEPT // ***はhttpsのポート番号を指定 $sudo service iptables save // 設定を反映 |
- WordPressの設定
今回はWordPressのログイン画面と管理画面全体でSSLを有効にしたので、以下のようにwp-config.phpを編集。
1 2 3 4 5 6 |
$sudo vi /wordpressディレクトリ/wp-config.php define('FORCE_SSL_ADMIN', true); // この1行を以下の最下段よりも上に追記 /** Sets up WordPress vars and included files. */ require_once(ABSPATH . 'wp-settings.php'); |
以上!
こちらのらくがきもどうぞ。
関連記事
記事はありませんでした
- PREV
- ブログでもはじめようかと。
- NEXT
- 平日ベトめし事情