wordpress プラグイン適用その2

wordpress プラグイン適用その2

画像圧縮プラグインは導入できたので
引き続き必要になりそうなプラグインをいれることに

ブログの趣旨としては
いろいろ実践したものを書いていきたいので
必要となるものは
画像圧縮
ソースコードの表示
Google Adsense の表示
スマホ対応
ぐらい

あとは購入してよかったものを
Amazon とかアフィリエイトで紹介するのは
そのままコードを貼り付けでできるので

今回は
スマホ対応にするために
WPTouch をインストール

Plugins > Add New で WPtouch で検索し
Install Now をクリック後 Activate をクリック

これでスマホ対応ができたので

次にソースコードの表示のためのプラグインをインストール

Plugins > Add New で
SyntaxHighlighter Evolved で検索し
Install Now をクリック

インストール後は Activate を忘れずに

AdSense Manager はすでに古いらしく
AdSense Managerはもう使えない?代わりのプラグインは?

によれば最終更新は5年前とのこと

また最近では Google Adsense で自動広告が使えるようになり
これを機に別のものを使うことに

WordPressでGoogle AdSense 自動広告を設定する方法

を参考に
Ad Inserterプラグインをインストール

ダッシュボードにログインして
Plugin > Add New で
Ad Inserter で検索し Install Now をクリック

インストールすると
Install Now が Activate になるので
これをクリック

エラーが表示されますが、気にせず次の操作へ進みます

次に設定をするので
Plugin > Installed Plugins で
Ad Inserter の Settings をクリック

次に Adsense にログインし
広告 > 自動広告

自動広告をクリックし
表示されたソースをコピーして

wordpress のダッシュボードで
Settings > Ad Inserter で

歯車アイコンをクリックして
Header をクリックし
ここへ貼付け後に
有効化アイコンをクリックし緑色になったら
Save Settings をクリックし設定を反映

これで自動広告が表示されるようになります

wordpress プラグイン適用

wordpress プラグイン適用

wordpress 引っ越しに伴い、適用するプラグインも変更

EWWW Image Optimizer
画像を自動圧縮するプラグイン
これを使えば過去にアップロードした画像も圧縮可能

Plugins > Add New
EWWW Image Optimizer
で検索し
Install Now をクリック

インストール後に Activate するのを忘れずに
使い方については
EWWW Image Optimizerの設定方法と使い方【2018年最新版】

を参考に

なお、最新版は英語

使用するには
PHPライブラリの GDと Imagick が必要なので

LaravelにImageMagick(最新版)をインストールして使用する

を参考にインストール

yum install https://rpmfind.net/linux/mageia/distrib/cauldron/x86_64/media/core/release/lib64openjp2_7-2.3.0-2.mga7.x86_64.rpm
yum install fftw3
yum install libXt
yum install libtool-ltdl

しかし

yum install http://springdale.math.ias.edu/data/puias/computational/7/x86_64/openjpeg2-devel-2.1.0-7.sdl7.x86_64.rpm

でエラーになるため

yumでPHP7をインストールする方法(CentOS7)

を参考に remi リポジトリでインストール

yum --enablerepo=remi-php71 install php php-cli php-devel php-common php-mbstring php-mysqlnd php-pear php-pecl-xdebug

このまま ImageMagick をインストールしても

ERROR: `/var/tmp/imagick/configure --with-php-config=/usr/bin/php-config --with-imagick=imagick' failed

となるので

PECL ImageMagick(PHP)インストール手順

を参考に

yum install ImageMagick-devel
yum install php-devel

で必要なライブラリをインストールしてから

pecl install imagick

を実行

途中で

Please provide the prefix of Imagemagick installation [autodetect] : 

とでるので

PHPでの画像処理【ImageMagick編】

を参考に
imagic
と入力

インストールが完了したら

Build process completed successfully
Installing '/usr/include/php/ext/imagick/php_imagick_shared.h'
Installing '/usr/lib64/php/modules/imagick.so'
install ok: channel://pecl.php.net/imagick-3.4.3
configuration option "php_ini" is not set to php.ini location
You should add "extension=imagick.so" to php.ini

と表示されるので

vim /etc/php.ini

でファイルを開き
最終行に

extension=imagick.so

と追記

最後に設定反映のため

systemctl restart httpd

でApache を再起動します

これでページをリロードすると
EWWW Image OptimizerのConvert 機能が使えるので

Settings > EWWW Image Optimizer
Convert タグで
Hide Conversion Links
でチェックがついているのを確認し
Save Changes をクリック

設定ができたら
Media > Bulk Optimize

Scan for unoptimized images
をクリックすれば
最適化されていない画像のスキャンができます

スキャン完了後に Start optimizing をクリックすれば
最適化されます

wordpress ssl変換後のアフィリエイトコード変更

wordpress ssl変換後のアフィリエイトコード変更

wordpress 自体をSSL変換しても
アフィリエイトコードが https 対応していないと
セキュリティの警告がでます

まずは
https化(SSL変換)後のアフィリエイトコードの変更作業について

を参考に

まずは A8.net
A8の場合、2016年7月26日に既に各アフィリエイトコードは全てhttps化に対応
とのこと

ただしそれ以前は http なので
これを書き換える必要がありそう

まずはA8.net にログインして
登録情報 > サイト情報の登録、修正
をクリック

修正したいサイトで修正をクリックし
URLの部分を https に変更

ダッシュボードにログインして
Tools > Seach Regex

Seach pattern に
a8.net

Seach して
リストアップされた記事の edit をみて
新しいバナーに張り替えていきます

注意点としては
wordpress のテンプレやサイドバーなどの
アフィリエイトコードも対象となっているので
この場合

英語テーマなら
Appearance > Customize

Widgets > Sidebar
として
Text の部分を編集することで
サイドバーのバナーの張替えが可能になります

できたら
Published をクリックすることで更新できます

なお、リンク切れのアフィリエイトコードは消しておきましょう

次に Amazon アソシエイトのURLも変更するので

SSL化httpsにしたらAmazonアソシエイトが表示されない対処法

を参考に

Tools > Seach Regex で
Search pattern で
Seach して Replace & Save で保存

これでOK

wordpress の SSL 対応(Let’s Encript)

wordpress の SSL 対応(Let’s Encript)

無事に wordpress を GMO クラウドから
ConoHa VPS に移行できたので
次に wordpress のSSL対応にします

ssh でログインしたら

su -

で管理者権限になり

使用するドメインは
wp.developapp.net
なので

/usr/local/certbot/certbot-auto certonly --webroot -w /var/www/html/wp.developapp.net -m メルアド-d wp.developapp.net --agree-tos

で証明書ファイルを発行

 vim /etc/httpd/conf.d/wp.developapp.net.conf 

で設定ファイルを開き

<VirtualHost *:443>
        ServerName wp.developapp.net:443
        DocumentRoot "/var/www/html/wp.developapp.net"
        ErrorLog logs/ssl-wp.developapp.net-error_log
        CustomLog logs/ssl-wp.developapp.net-access_log combined env=!no_log
        SSLCertificateFile /etc/letsencrypt/live/wp.developapp.net/cert.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/wp.developapp.net/privkey.pem       
        SSLCertificateChainFile /etc/letsencrypt/live/wp.developapp.net/chain.pem

        SSLProtocol all -SSLv2 -SSLv3
        SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:RSA+AESGCM:RSA+AES:!aNULL:!MD5:!DSS
        SSLHonorCipherOrder on
        Header always set Strict-Transport-Security "max-age=15768000"
</VirtualHost>

を追記

なお、HTTPでアクセスしてきたものを HTTPS にするには

    RewriteEngine on
    RewriteRule ^.*$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]


80 番ポートのところに追記します

<VirtualHost *:80>
    ServerName wp.developapp.net
    DocumentRoot /var/www/html/wp.developapp.net
    ErrorLog logs/wp.developapp.net-error_log
    CustomLog logs/wp.developapp.net-access_log combined env=!no_log

    RewriteEngine on
    RewriteRule ^.*$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

</VirtualHost>

設定反映のため

systemctl restart httpd

で Webサーバを再起動

これで SSL対応はできるけど
これから書く記事に対してはOKだけど
過去記事に関しては
リンクが http のため
このままだと
一部は安全ではありません
と表示されることに

wordpress letsencrypt 一部安全ではありません
で検索し
WordPressサイトをSSL化した時注意すること

を参考に

まず、ダッシュボードにログインし
Settings > general

WordPress Adress(URL)

Site Address(URL)
の部分の
http を https に変更

次に過去記事のメディアなどのURLの置き換え
これはプラグインのSearch Regexで可能なので

Plugin > AddNew

Search Regexで検索し
Activate で有効化

Tools > Search Regex

Search pattern に 
http://wp.developapp.net
というようにSSLする前のドメインを
Replace pattern には
https://wp.developapp.net/
というように SSL対応したあとのドメインを入力し
Seach をクリック

これで該当する部分がでるので
Replace & Save
で置き換えと保存

しかし、まだダメなので
アフィリエイトサイトの場合ASPのトラッキング用のリンクなどが
影響しているため、一度使用しているアフィリエイトのリンクを確認

これらのリンクに対しては今後対応することに

wordpress の引っ越し作業で画面真っ白の対処

wordpress の引っ越し作業で画面真っ白の対処

mysql データを MariaDB へインポートできたので
次にvirtualhost の設定

vim /etc/httpd/conf.d/wp.developapp.net.conf

というように
ドメイン名.conf
というファイルを作成

内容は

<VirtualHost *:80>
    ServerName wp.developapp.net
    DocumentRoot /var/www/html/wp.developapp.net
    ErrorLog logs/wp.developapp.net-error_log
    CustomLog logs/wp.developapp.net-access_log combined env=!no_log
</VirtualHost>

保存したら

systemctl restart httpd

で apache を再起動

しかし
お使いのサーバーの PHP では WordPress に必要な MySQL 拡張を利用できないようです。

と表示される

エラーで検索し
CentOS7 PHP7.1.2 お使いのサーバーの PHP では WordPress に必要な MySQL 拡張を利用できないようです。

を参考に

php -m | grep mysql

を実行しても何もでないので

yum install yum-utils
yum-config-manager --enable remi-php71
yum install php-mysqlnd

で必要なパッケージをインストール後

php -m | grep mysql

を実行し

mysqli
mysqlnd
pdo_mysql

がでたのを確認したら

systemctl restart httpd

で apache を再起動したけどかわらず

おそらく wordpress のバージョンが古すぎることが原因

とりあえず

wget http://ja.wordpress.org/latest-ja.zip

で最新のwordpress をダウンロード

mv wordpress /var/www/html/wp.developapp.net
chown -R apache:apache /var/www/html/wp.developapp.net/
cd /var/www/html/wp.developapp.net/
cp wp-config-sample.php wp-config.php
vim wp-config.php
systemctl restart httpd

今度は
データベース接続確立エラーになった

ログインユーザに問題があるとおもい
wordpress ユーザで mysql でログインしようとしてもできないので
サーバー移動による hostname があやしいと思い

root で mysql にログインして調べたら

select host,user from mysql.user;

を実行すると
host が % になっている

念の為

 show variables like 'hostname';

で hostname もみてみたら
やはり違っている

このあたりから調べることに
Warning: mysqli_real_connect(): (HY000/1045): Access denied for user ‘snowpool’@’localhost’ (using password: YES) in /var/www/html/wp.developapp.net/wp-includes/wp-db.php on line 1531

つまり ユーザに問題がありそう

MariaDB(MySQL)の基本的なユーザー系コマンド

で調べ

SELECT user,host FROM mysql.user;

でユーザ一覧をみたら

ユーザは存在しているけど
root 以外は

SHOW GRANTS FOR ''@'hostname';

で権限を確認しても

ERROR 1141 (42000): There is no such grant defined for user 'snowpool' on host 'hostname'

となるし

ログインしようとしても

ERROR 1045 (28000): Access denied for user 'snowpool'@'localhost' (using password: YES)

となってしまう

Hostを指定しないで作ったuser1はHostが「%」になっているので
とあるので
https://teratail.com/questions/45324

MySQLの権限の確認や外部からのアクセス

に権限について載っているのをみると

どうやら、host の指定をしていないのが原因っぽい

とりあえず権限の確認

show grants;

で現在のユーザの権限が確認できる

root ユーザに関してはログインしてコマンド実行することでみれたけど
wordpress のユーザはログインすることができかったため

DBの破損の確認をしたいので

テーブルが壊れているかと思ったので、mysqlcheckで修復したときのメモ

を参考に

mysqlcheck -c -u root -p --all-databases

を行ったところ
すべてOKで破損はなし

SELECT user,host FROM mysql.user;

でユーザ一覧をだしてみたけど
host が % になっているのでたぶんこれが原因っぽい

一度、移行前のサーバーへ ssh ログインし

show grants for 'snowpool'@'%';

では権限確認できるのに対し

インポート先の MariaDBで

show grants for 'snowpool'@'%';

だと

ERROR 1141 (42000): There is no such grant defined for user 'snowpool' on host '%'

となる

MySQL] MySQL5でHostに’%’があるとリモート接続できない?

によれば
host に % にするのは mysql のワイルドカードで
どこからの接続でも許可するというもの

今使っているDBが MariaDB
最初は権限やセキュリティの仕様が違うのかとおもったけど
マシンのホスト名やOSが違うため

slaveの再設定、追加(オンラインバックアップ)

をみてみたら

別サーバーで、レプリケーションが行われているmysqlからダンプして
フルバックアップファイルを利用して、slaveを設定しなおす場合に、
mysqlの接続アカウント情報も書き変わってしまう。

そのため、元々masterに設定されていた接続アカウントと
ダンプファイルのアカウント情報が違う場合には、アカウント情報を再設定してあげる必要がある。

とのこと

ということで再度アカウントを別のもので作成して実験

grant all privileges on wp_my_wordpress* to snowpool@localhost identified by "password";

これで wp-config.php の設定を変更したけど画面が真っ白

念の為

mysqldump -u root -p wp_my_wordpress > wordpress.sql

でバックアップを作成しておく

なお復旧させるときには

create database wordpress;

で新規作成

 mysql -u root -p wordpress < wordpress.sql 

でインポートすれば復旧可能

 mysqlcheck -c wordpress -u root -p

で破損をチェックしOKを確認するのも忘れずに

なお、画面が真っ白になった原因は
最新のwordpress にした場合、該当するテーマがないため
wp-config.php での設定をせず
ドメインにアクセスし、ブラウザからインストールし
ダッシュボードへログインしてテーマ設定をすれば
wordpress の表示がされるようになります

wordpress の Mysql DB バックアップと Maria DB へのインポート

wordpress の Mysql DB バックアップと Maria DB へのインポート

GMOクラウドで構築した wordpress から
ConoHa VPS へ移行するため
mysql のバックアップを行う

WordPressサイトの移行手順まとめ(mysqldumpから別環境移行まで)

を参考にやってみる

DBの内容が多かったのが原因なのかは不明だけど
プラグインで実行しようとしたらできなかったので
mysqldump コマンドでバックアップすることに

データ容量が大きい場合,bzipでは圧縮は比較的早いが解凍に時間がかかるため
gzip を使ったほうがいいらしい

MySQLでバックアップ&圧縮をまとめて行うコマンド

でも バックアップと圧縮をパイプでまとめて行っている

バックアップのためのディレクトリを作成したいので

mkdir -p /var/www/backup/db_bak
chmod 777 /var/www/backup/db_bak

で作成して

個別のDBバックアップ圧縮なら

mysqldump -u username -h localhost -p databasename | gzip > mysqldump.sql.gz

すべてなら

mysqldump -u username -h localhost -p -A | gzip > mysqldump.sql.gz

でできるようだ

なお、復元に関しては
解凍&復元を同時に行う(zcat+mysql)

zcat mysqldump.sql.gz | mysql -u username -p databasename

とあるのでこれを行うには
zcat が必要になりそう

–all-databases  は
mysqldump のオプションで
全DBバックアップという意味

とりあえずバックアップしたファイルを sftp でダウンロード

今回は
mysql_backup_20181011.dump.gz
というファイルにしてダウンロード

mysql を MariaDB にインポートするので
後々問題になったときのため
バージョンを調べておくことに

/usr/local/mysql/bin/mysql --version

で調べたら

/usr/local/mysql/bin/mysql  Ver 14.14 Distrib 5.5.27, for Linux (x86_64) using  EditLine wrapper

なので
ver 5.5.27 みたい

次に

scp -p mysql_backup_20181011.dump.gz snowpool@サーバIP:/home/snowpool/

で公開鍵認証 scp で圧縮ファイルを転送

念の為
MariaDB のバージョンを

mysql --version

で確認したら

mysql  Ver 15.1 Distrib 5.5.60-MariaDB, for Linux (x86_64) using readline 5.1

またmysql のホスト名の違いについては

show variables like 'hostname';

で確認

DB全部バックアップしたものを復旧するなら

 mysql -u root < /vagrant/dump.sql

でよさげなので
MariaDB のデータを mysqldump でバックアップ・リストアする

を参考に実践

単純に

 zcat mysql_backup_20181011.dump.gz | mysql -u root -p

でできた

これで mysql のデータを maria DB にインポートできたので
次は virtualhost の設定をして
wordpress のインストールを行います

ConoHa VPS virtualhost 設定

ConoHa VPS virtualhost 設定

バーチャルホスト設定(Apache)

を参考に
virtualhost の設定

今回使用するドメイン名は
www.snowpool.info

mkdir /var/www/html/www.snowpool.info

でvirtualhost ドキュメントルートディレクトリを作成

vim /etc/httpd/conf.d/virtualhost.conf

で未定義ホスト用virtualhost 設定ファイルを作成

内容は

<VirtualHost _default_:80>
    ServerName any
    <Location />
        Require all denied
    </Location>
</VirtualHost>

とすることで
virtualhost 未定義ホスト名でアクセスを拒否

 vim /etc/httpd/conf.d/www.snowpool.info.conf

で www.snowpool.info の
virtualhost 設定ファイルを作成

つくるファイル名は
ドメイン名.conf
となる

内容は

<VirtualHost *:80>
    ServerName www.snowpool.info
    DocumentRoot /var/www/html/www.snowpool.info
    ErrorLog logs/www.snowpool.info-error_log
    CustomLog logs/www.snowpool.info-access_log combined env=!no_log
</VirtualHost>

なお
www.snowpool.info
の部分は取得したドメインに置き換え

systemctl restart httpd

で Webサーバ再起動

echo test >> /var/www/html/www.snowpool.info/index.html

でテストファイルを用意

これで
http://www.snowpool.info/
へアクセスすると
test と表示されます

次に Lets Encript の適用を変更するので

vim /etc/httpd/conf.d/ssl.conf

で設定ファイルを開き
56行目あたりの

 <VirtualHost _default_:443>

から
218行目あたりの

 </VirtualHost>

までを削除

次に

 /usr/local/certbot/certbot-auto certonly --webroot -w /var/www/html/www.snowpool.info -m メルアド -d www.snowpool.info --agree-to

を実行すると

What would you like to do?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: Keep the existing certificate for now
2: Renew & replace the cert (limit ~5 per 7 days)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 

となるので

Let’s Encrypt の証明書の更新で「バージョンが異なる」のメッセージが出て更新できない

を参考に

2 を入力し Enter で更新

次に

vim /etc/httpd/conf.d/www.snowpool.info.conf 

を開き

<VirtualHost *:443>
        ServerName www.snowpool.info:443
        DocumentRoot "/var/www/html/www.snowpool.info"
        ErrorLog logs/ssl-www.snowpool.info-error_log
        CustomLog logs/ssl-www.snowpool.info-access_log combined env=!no_log
        SSLCertificateFile /etc/letsencrypt/live/www.snowpool.info/cert.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/www.snowpool.info/privkey.pem       
        SSLCertificateChainFile /etc/letsencrypt/live/www.snowpool.info/chain.pem

        SSLProtocol all -SSLv2 -SSLv3
        SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:RSA+AESGCM:RSA+AES:!aNULL:!MD5:!DSS
        SSLHonorCipherOrder on
        Header always set Strict-Transport-Security "max-age=15768000"
</VirtualHost>

を追記

設定反映のため

systemctl restart httpd

で Webサーバを再起動

これで https アクセスになるけど
http でアクセスしてきたものを強制的に https にしたいので

CentOS7 複数ドメイン(バーチャルホスト)でSSL

を参考に

virtualhost *:80
の部分に

    RewriteEngine on
    RewriteRule ^.*$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

を追記

今回の場合

<VirtualHost *:80>
    ServerName www.snowpool.info
    DocumentRoot /var/www/html/www.snowpool.info
    ErrorLog logs/www.snowpool.info-error_log
    CustomLog logs/www.snowpool.info-access_log combined env=!no_log

    RewriteEngine on
    RewriteRule ^.*$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
</VirtualHost>

<VirtualHost *:443>
        ServerName www.snowpool.info:443
        DocumentRoot "/var/www/html/www.snowpool.info"
        ErrorLog logs/ssl-www.snowpool.info-error_log
        CustomLog logs/ssl-www.snowpool.info-access_log combined env=!no_log
        SSLCertificateFile /etc/letsencrypt/live/www.snowpool.info/cert.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/www.snowpool.info/privkey.pem
        SSLCertificateChainFile /etc/letsencrypt/live/www.snowpool.info/chain.pem

        SSLProtocol all -SSLv2 -SSLv3
        SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:RSA+AESGCM:RSA+AES:!aNULL:!MD5:!DSS
        SSLHonorCipherOrder on
        Header always set Strict-Transport-Security "max-age=15768000"
</VirtualHost>

となりました

ConoHa VPS 設定(Lets Encript の適用)

ConoHa VPS 設定(Lets Encript の適用)

Apache のインストールまではできているので
設定を変更

CentOS7 複数ドメイン(バーチャルホスト)でSSL

を参考に設定

su -

で管理者権限になり

vim /etc/httpd/conf/httpd.conf 

でファイルを開き

TraceEnable off

を最終行に追記
なお
shift +g で最終行に移動して
o を押して書き込みモードにして
ctrl + shift + v で貼り付けすると楽

この意味は
エラー画面にサーバー情報を表示しないようにする
というもの

これについては
apacheで攻撃者に有用な情報を与えない対策

を参考に

次に
144行目の

Options Indexes FollowSymLinks

Options Includes ExecCGI FollowSymLinks

へ変更し
CGI,SSIの許可

次に151行めの

AllowOverride None

AllowOverride All

と変更することで
.htaccess を許可

次にautoindex 設定ファイルを修正

vim /etc/httpd/conf.d/autoindex.conf 

で設定ファイルを開き
24行目の

Options Indexes MultiViews FollowSymlinks

Options MultiViews

とすることで
icons ディレクトリのファイル一覧を表示しないように設定

次に
SSLデフォルト設定ファイルを編集
しかし、対象となるファイルが見当たらないため

Webサーバー間通信内容暗号化(Apache+mod_SSL+Certbot)

を参考に設定

まずは Certbot クライアントのインストール

yum -y install git

で git をインストール

次に

cd /usr/local/
git clone https://github.com/certbot/certbot
cd
/usr/local/certbot/certbot-auto -n


certbot クライアントをインストール

次にサーバ証明書の取得
構文は

/usr/local/certbot/certbot-auto certonly --webroot -w ドキュメントルート -m メールアドレス -d Webサーバー名 --agree-tos

今回は
ドキュメントルートは
/var/www/html/

webサーバ名はドメインの
www.snowpool.info

メルアドは私の gmail アドレスで行いました

実行すると

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: 

というように
Lets Encript パートナーにメルアドを公開していいか聞かれるので
さすがに公開は嫌なので
N
としました

次に mod_ssl のインストール

yum -y install mod_ssl

次にSSL設定ファイルを編集

vim /etc/httpd/conf.d/ssl.conf 

で設定ファイルを開き

100行目の

SSLCertificateFile /etc/pki/tls/certs/localhost.crt

SSLCertificateFile /etc/letsencrypt/live/www.snowpool.info/cert.pem

に変更

107行目の

 SSLCertificateKeyFile /etc/pki/tls/private/localhost.key

SSLCertificateKeyFile /etc/letsencrypt/live/www.snowpool.info/privkey.pem

に変更

116行目の

#SSLCertificateChainFile /etc/pki/tls/certs/server-chain.crt

SSLCertificateChainFile /etc/letsencrypt/live/www.snowpool.info/chain.pem

に変更し保存

そして94行目に

SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AE    S:RSA+AESGCM:RSA+AES:!aNULL:!MD5:!DSS

SSLHonorCipherOrder on

を追加することで
暗号化方法の追加と
暗号化方法をサーバ側で決定できるように設定

ここまでできたら保存して

systemctl reload httpd

で Apache を再起動

これで https://ドメイン名
でアクセスして鍵マークが出ていれば成功

letsencript

お名前.com で取得したドメインの引っ越し設定

お名前.com で取得したドメインの設定

wordpress の引っ越しの前に
まずはドメインの設定をします

すでに稼働しているこのブログで実験するのはリスクがあるので
以前AWS で wordpress 構築で使っていたドメインが
お名前.com にあったので
これをつかって ConoHa VPSに適用してみます

やり方については
お名前.comで独自ドメインを取得してConoHaで公開する手順

を参考にさせていただきました

なお、今回はお名前.com でのドメイン取得については
省いています

まず ConoHa のコントロールパネルを開き

DNS をクリックし ドメインをクリック

domain

次にドメイン名を入力し
保存をクリック

domain2

次に 
編集の鉛筆のようなアイコンをクリック
+アイコンをクリックし
タイプは A(通常)
名称は www
TTL は省力してもOK
値は ConoHa のサーバーIP
を入力し
保存をクリック

domain3

なおNSのところの値は
あとでお名前.com のネームサーバ設定で使うので
控えておきましょう

次にお名前.com へログインし
DNS関連機能の設定をクリックし
ドメインにチェックを入れて
次に進むをクリック

domain4

次にDNSレコード設定を利用する
をクリック

domain5

すでに取得してあった引っ越し前のサーバのIPを
今回適用する ConoHa のIPに書き換え
DNSレコード設定用ネームサーバー変更確認
にチェックをいれ
確認画面に進む
をクリック

domain6

次にネームサーバの設定をするので
ネームサーバーの変更をクリックし
適用するドメインにチェックをいれ
他のネームサーバーを利用をクリックし

1プライマリネームサーバー(必須)
1プライマリネームサーバー(必須)

の部分に
ConoHa のNSのところの値を入力し
確認画面に進むをクリック

domain8]

これで引っ越しのためのドメインの準備ができたので
あとは時間をおいてから
取得したドメインへアクセスすると
ページが表示されます

ubuntu 16.04 へ redmine と gitlab インストール その1(公開鍵認証設定)

ubuntu 16.04 へ redmine と gitlab インストール その1(公開鍵認証設定)

raspberry Pi で構築したときにはマシンスペック不足だったので
今回は Virtualbox の Ubuntu 16.04 で実践

まず ssh 接続できるように

sudo apt-get install openssh-server

で SSH server をインストール

次に vim のインストール

sudo apt-get install vim

root での ssh ログインを禁止するために

sudo vim /etc/ssh/sshd_config

で設定ファイルを開き
28行目の

PermitRootLogin prohibit-password

PermitRootLogin no

へ変更し保存

sudo /etc/init.d/ssh restart 

で SSH server を再起動して設定を反映

公開鍵認証で使うために

mkdir .ssh
chmod 700 .ssh/

でディレクトリを作成し
権限を 700 にしておきます

次に公開鍵認証にするけど
すでに別のマシンで鍵をつくっているので
上書きされると困るので
sshの公開鍵認証について(個人的まとめ)

を参考に
鍵ファイルに名前をつけます

一度サーバーからログアウトして
クライアントマシン側の ubuntu で作業します

ssh-keygen -t rsa

を実行して

Enter file in which to save the key (/home/snowpool/.ssh/id_rsa): 

の時に名前をいれればOK

このときに名前を snowpool とすると
snowpool という秘密鍵
snowpool.pub という公開鍵ができます

次に権限などの変更

mv snowpool .ssh/
chmod 600 .ssh/snowpool 

として権限を 600 へ変更

次に対象サーバーへ公開鍵をコピー

scp snowpool.pub snowpool@192.168.1.237:~/.ssh/authorized_keys

次にサーバーにログインし

chmod 600 .ssh/authorized_keys 

で権限を 600 に変更

これであとはクライアント側で

ssh -i .ssh/snowpool snowpool@192.168.1.237

というように
ssh コマンドで -i オプションで鍵を指定することで
公開鍵認証でログインができます

セキュリティのためのパスワード認証を禁止するため

sudo vim /etc/ssh/sshd_config 

で設定ファイルを開き

52行めの

#PasswordAuthentication yes

PasswordAuthentication no

へ変更し

sudo /etc/init.d/ssh restart 

でSSH server を再起動して設定を反映

これでパスワード認証でのログインは不可能になります

ただ、このままだと毎回鍵ファイルを指定するのは面倒なので
クライアント側の設定を変更します

vim .ssh/config

で 設定ファイルを開き

Host snowpool
        HostName snowpool-VirtualBox
        User snowpool
        Port 22
        IdentityFile /home/snowpool/.ssh/snowpool

というようにファイルを作成します

Host には任意の接続したい名前

HostName には対象マシンのホスト名
これは hostname コマンドを実行するとでます

User はユーザ名

Portは接続ポート番号

IdentityFile は公開鍵の場所を指定します

これで

ssh snowpool

というようにすると設定した Host名で簡単にログインができるようになります