さくらのレンタルサーバにLet’s EncryptのSSL環境を導入してみた

以前、うちのサーバでも共有SSLを試したことがある。もう10年ぐらい前の話。共有SSLなので、『https://○○.sakura.ad.jp/アカウント名/XXX』的なアドレスになって、独自ドメインそのものではSSLできなかった。その出口だけ専用に.htaccess書いたり、そもそも共有SSLに脆弱性が見つかって一時的に運用停まったり、とあまり良いものではなかった。
が、今は独自ドメインで簡単にSSLが使える(しかも証明書維持も無料に出来るようになった)、と言うのでので試してみた。

結論から言うと、Let’s Encryptによるサーバ証明書は無料で使えるものの、90日の期限があり、更新作業が結構煩雑(root権限を要求するので『さくらのレンタルサーバ』上で自動的に更新できない)ので、さくらのレンタルサーバで使うにはあくまで一時的な実験向けと感じた。
恒久的にSSL環境を導入したいのなら、
さくらのSSL | SSLサーバー証明書ならさくらインターネット
を使ってラピッドSSLを活用すればいい。ラピッドSSLなら3年払いで3,200円+taxなのでそれほどの負担感はないはずだ。
あるいは、さくらのレンタルサーバではなくさくらのVPSを使えばいい。さくらのVPSならLet’s Encryptの更新もcrontabで自動化できるらしいし、維持費的にもさくらのレンタルサーバさくらのSSLのコストがさくらのVPSの安いプランとほとんど大差ないからだ。

Let’s Encryptの導入手順は公式によくまとまっている。
Let’s Encrypt の使い方 – Let’s Encrypt 総合ポータル
手順を読んでいけばわかるが、残念ながらさくらのレンタルサーバ(スタンダード含めて)はroot権限がないので「letsencrypt -auto」コマンドが発行できず、証明書を作成することができない。
そこで、別の環境で証明書を作ってコピーしてくる手順が必要になる。
自分のPCの中に仮想環境を作ってもいいが、今回はさくらのVPSのお試し期間を使い、証明書を作ってみた。

まず、さくらのVPS
VPS(仮想専用サーバ)|さくらインターネット – 無料お試し実施中



からVPSをお試しすればよい。どうせ本契約をするつもりはなく、作業的にも大して負荷のかかる作業をするわけでもないので一番安いプランでよい。
で、申し込みが完了したらOSをインストール。
ここから何故かSSH含めたコンソール接続できるようになるまでやたら待つ必要がある。以前は数分も待たされなかった気がするのだが、今はインストール後すぐにTTSSH接続すると『ホストに接続できません』だの『接続が拒否されました』だののメッセージが出て接続が切断されてしまう。そこで次のさくらのレンタルサーバ側の手続きをしながら気長に待つ(TTSSH接続できるようになるまで、だいたい30分はかかるようだ)。

さくらのレンタルサーバでSSL用ドメインの用意

まず、さくらのVPSの作業を本格的に始める前に、さくらのレンタルサーバ側でSSL用ドメインの登録を行う。
登録したドメインがDNS浸透するまで数時間かかるからだ。
今回は、ssl.chatarou.netと言うサブドメインをSSL向けに割り振ってみた。実験なので、ssl.chatarou.netで表示する内容はwww.chatarou.netと同じ(もちろん別にすることも出来る)。

2016-02-07_01
さくらインターネット コントロールパネルに入り、【ドメイン設定】→【新しいドメインの追加】と進む。

2016-02-07_02
今回はchatarou.netにサブドメインを追加する。

2016-02-07_03
ドメイン名『ssl』を追加。

2016-02-07_04
ドメイン追加の確認画面。

2016-02-07_05
詳細設定へ進む。

2016-02-07_05b
1. 設定をお選びください
「wwwを付与せずマルチドメインとして使用する(上級者向け)」を選ぶ
(まさかwww.ssl.chatarou.netとか言う冗長なドメイン使う人はいないでしょう)
2. マルチドメインの対象のフォルダをご指定ください
フォルダパスを指定する。今回はテストなので「www.chatarou.net」と同じパスを指定しているが、ここに違うパスを入れれば当然別サイトとして運営も可能。
4. SSLの利用を選んでください
共有SSL、SNI SSLを利用しない」を選ぶ。現時点ではSSL証明書が出来上がっていないので利用登録が出来ないので。

2016-02-07_06
ssl.chatarou.net』が追加されたことを確認。
この状態で放置しておけば、大まかに2時間程度でDNS浸透して使えるようになる。

さくらのVPSの環境構築

次にさくらのVPSの方に移って作業を進めていく。以下しばらくはさくらのVPSでの作業。
さくらのVPS サーバの初期設定ガイド|さくらインターネット公式サポートサイト
に従って作業を進めていく。
どうせ一時的に使うだけなので、3.sudoの設定と4.SSHの設定は必ずしもやらなくてもいい。

※3.sudoの設定について
現時点(2016.02.09)では上記のガイドに不備があるのか、書かれている通りにやってもSSHでsudoは使えないようだ。
なんでか%wheelを一般ユーザに追加してもsudo実行できないので、一般ユーザ名を直接visudoで書いた方がよさそう。

iptablesの設定

上記のさくらのVPS公式の初期設定、6.iptablesの設定を参考にしながらやる。
さくらのVPS公式設定に加えて、あらかじめSSH、ftp、http、のポートを開けておく。
こっちはLet’s Encryptを実行させるためのサーバでしかないので、httpsを開けておく必要はない。
以下の通りコマンドを打ち込んで、設定を書き込んでいく。
最後のセーブを忘れると設定が消えるのでちゃんと最後まで書くこと。

<code>
# iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
# iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
# iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP

# iptables -A INPUT -i lo -j ACCEPT
# iptables -A INPUT -p icmp -j ACCEPT

# iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT

# iptables -A INPUT -p tcp -m tcp --dport 20 -j ACCEPT
# iptables -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
# iptables -A INPUT -p tcp -m tcp --dport 50000:50030 -j ACCEPT

# iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT

# iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# iptables -P INPUT DROP
# iptables -P OUTPUT ACCEPT

# service iptables save

# /etc/rc.d/init.d/iptables restart
# iptables -L
</code>

補足:
80番portはhttp
20番portはftp
21番portはftp
50000-53000番portはftpのpasvポート
22番portはSSH

なお、

<code>
# vi /etc/sysconfig/iptables
</code>

を叩いてiptablesを直接編集してもよい。
viのかんたんな使い方は
viエディタの使い方
を参照。

vsftpdの構築

出来上がった証明書を持ってくるのに必要なので構築する。
さくらのVPSを使ってみる【9】-vsftpdをインストールしてみる | 初心者プログラマー奮闘記
を参考にした。

<code>
# sudo yum -y install vsftpd
</code>

まずvsftpdをインストール。

<code>
# vi /etc/vsftpd/vsftpd.conf
#匿名アクセス禁止
anonymous_enable=YES
  ↓
anonymous_enable=NO
#ファイルのパーミッションが644になってしまうので、グループ書き込み可の664にします
local_umask=022
  ↓
local_umask=002
#アスキーモード有効
#ascii_upload_enable=YES
#ascii_download_enable=YES
  ↓
ascii_upload_enable=YES
ascii_download_enable=YES
#シグニチャ隠蔽
#ftpd_banner=Welcome to blah FTP service.
  ↓
ftpd_banner=Welcome to blah FTP service.
#ホームディレクトリのみ参照するユーザー設定
#chroot_list_enable=YES
#chroot_list_file=/etc/vsftpd/chroot_list
  ↓
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
#サブフォルダを含む一括アップロード・ダウンロードを許可
#ls_recurse_enable=YES
  ↓
ls_recurse_enable=YES
#-----ファイルの最後に設定を追加-----
#/etc/vsftpd/user_listのユーザーだけを許可
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
#タイムスタンプ時間をローカル時間にする
use_localtime=YES
#ユーザーの初期アクセスディレクトリ
#ここに書いたディレクトリが最初に開く。
#local_rootを書かないとホームディレクトリ
local_root=/var/www/html
#ユーザのホームディレクトリより、上位のディレクトリへの移動を不許可に
chroot_local_user=YES
#設定を簡単にするためにPASVのポート範囲を限定
pasv_min_port=50000
pasv_max_port=50030
</code>

次にftp用のユーザを設定。

<code>
# vi /etc/vsftpd/user_list
</code>

別にftp専用ユーザを作る必要もないので、さくらのVPS初期設定で作った一般ユーザを一行追記。
なお、rootは

<code>
# vi /etc/vsftpd/ftpusers
</code>

でftpアクセスが禁止されている(/etc/vsftpd/user_listに最初から書かれてるユーザの殆どもそう)なので
rootでftpは出来ないものと考えたほうがいい。

<code>
# vi /etc/vsftpd/chroot_list
</code>

さくらのVPS初期設定で作った一般ユーザを一行追記。

最後はvsftpdの自動起動設定を書いて、vsftpdデーモンの再起動。

<code>
# chkconfig vsftpd on
# chkconfig --list vsftpd
# /etc/rc.d/init.d/vsftpd restart
</code>

httpdの構築

WEBサーバーの設定 | 初心者でもわかる!さくらVPS | Sakura VPS 設定マニュアル
を参考にした。

<code>
# yum -y install httpd
# cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.org
# vim /etc/httpd/conf/httpd.conf
# service httpd configtest
</code>

httpd.confの書き換えは省略。

最後はhttpdの自動起動設定を書いて、httpdデーモンの再起動。

<code>
# chkconfig httpd on
# chkconfig --list httpd
# /etc/rc.d/init.d/httpd restart
</code>

Let’s Encryptの導入

Let’s Encrypt の使い方 – Let’s Encrypt 総合ポータル
Let’s Encryptを他のサーバでやってみる – ねころくぶろぐ
あたりを参考にした。

さくらのVPSLet’s Encryptをインストール

Let’s Encryptの証明書発行コマンドを実行

証明書発行コマンドの途中で指定された認証用ファイルをさくらのレンタルサーバの方に置く(実際にはさくらのレンタルサーバの方でSSHコマンドをコピペで打つ)

Let’s Encryptの証明書発行コマンドが完了して、さくらのVPSに証明書ファイルが出来上がる。

さくらのVPSの証明書ファイルをローカルにダウンロードする。

と言う手順。

<code>
# cd /usr/local/src
# git clone https://github.com/letsencrypt/letsencrypt
# cd letsencrypt/
# ./letsencrypt-auto --help
# ./letsencrypt-auto certonly --manual -d ssl.chatarou.net
</code>

最後のコマンドの独自ドメインは自分のサイトのを指定しましょう。

2016-02-08_01
こんな風にTTSSH上でTUI(テキストユーザインタフェース)の画面が走る。メールアドレスを登録して、

2016-02-08_02
OKでどんどん作業を進めていく。

で、TUIがいったん途切れて以下のメッセージが出るので、

<code>
If you don't have HTTP server configured, you can run the following
command on the target server (as root):
</code>

メッセージの下のコードを実行する。と言ってもそこのコードは/tmp/以下にファイルを作っちゃうので、さくらのレンタルサーバ向けにコマンドのパスは若干修正を行う必要がある。

さくらのVPSTTSSH画面は開いたまま放置しつつ、新しくTTSSHを立ち上げてさくらのレンタルサーバにSSHログインして以下の作業を行う。

<code>
% cd /home/chatarou/www/net.chatarou/
% mkdir -p ./.well-known/acme-challenge
% printf "%s" TntiiNWUdGnQfcmJdPdHa8Lyat8I5Ho7QkCppc3DAaY.f5FIj4fCpysa4Kyw8NlUDD1-PUgx_61UWy67sh_7L2s > .well-known/acme-challenge/TntiiNWUdGnQfcmJdPdHa8Lyat8I5Ho
</code>

1行目はssl.chatarou.netの公開ルートパス(さくらインターネット コントロールパネルから指定した場所)
2行目は公開ルートパスの下にSSH認証用のフォルダを作るコマンド
3行目の書き込む『謎の文字列』は毎回違うので、さくらのVPSのTTSSH画面のコマンドをちゃんとコピペする事。

最後にさくらのVPSのTTSSH画面でエンターを押せば認証が完成して証明書が出来る。
のでさくらのVPSのサーバからftpでローカルに落としてくる。
ファイルは/etc/letsencrypt/live/ssl.chatarou.net/にあるのだけど、そのディレクトリにはftpアクセスできないので一旦SSHでtmpにファイルを移動させてから落とす。

<code>
# cd /etc/letsencrypt/live/ssl.chatarou.net/
# cp cert.pem /tmp/
# cp chain.pem /tmp/
# cp fullchain.pem /tmp/
# cp privkey.pem /tmp/
</code>

これで/tmp/にFFFTPなどでアクセスして上記ファイルをダウンロードしてくる。

さくらのレンタルサーバにSSL証明書を登録

再びさくらインターネット コントロールパネルに入り、【ドメイン設定】へ進む。

2016-02-08_04
ssl.chatarou.netの証明書の追加を行う。

2016-02-09_03
まずは秘密鍵のアップロード。さっき落としてきたprivkey.pemを登録し、アップロードする。

2016-02-09_05
次に証明書をインストールする。さくらインターネット コントロールパネルのテキスト欄に、cert.pem(中身はテキストファイル)の中身をまるっとコピペするだけでいい。

<code>
-----BEGIN PRIVATE KEY-----
-----END PRIVATE KEY-----
</code>

の文字列もちゃんとコピペする事。END PRIVATE KEYの後ろに余計な改行はたぶんない方がいいと思う。

2016-02-09_06
証明書が登録され、内容が表示される。
引き続いて中間証明書のインストールに入る。

2016-02-09_07
今度は、chain.pem(中身はテキストファイル)の中身をまるっとコピペする。
なお、fullchain.pemcert.pemchain.pemの両方が書いてあるだけのファイルで、最初の証明書インストールにこっちを使えば一気に中間証明書までインストールできるはず…なのだがうまくいかなかったのでうちでは使わなかった。

2016-02-09_08
これで証明書、中間証明書の登録が完了。引き続いてドメイン設定へ。

2016-02-09_09
4. SSLの利用を選んでください
「SNI SSLを利用する」が選べるようになっているのでこれを選ぶ。
これで全作業完了。

2016-02-08_07
登録が終わってもこの画面が出るときは、1、2時間程度待ってみる。2時間待ってもこの画面の時は途中の作業を間違っている可能性が高い(特にSSL証明書の登録内容を間違えている可能性が高い)のでやり直す。
僕はDNSの浸透に時間がかかっているのかと思って12時間放置してもダメだったが、もう一度やり直したらやり直した後は3分で繋がるようになった。

2016-02-09_00
SSL接続できるようになった後の画面。
画面がおかしいのは、wordpressの設定上このサイトはwww.chatarou.netで見せるようになっており、cssなどへのパスがwww.chatarou.net経由でソースに書き込まれているため(つまりcssのないページ表示になっている)。
この辺を問題なくやろうと思ったら、サイトをssl.chatarou.netへ完全に移す(wordpressの一般設定から、サイトアドレス (URL)を変更する)か、Let’s Encryptの証明書発行コマンドで

<code># ./letsencrypt-auto certonly --manual -d ssl.chatarou.net -d www.chatarou.net</code>

等のようにwww.chatarou.netも含む形でコマンド発行すればいいかと思う。
どっちみちうちのサイトはflicker badgeでiframe使ってるからエラーメッセージはきそうではあるけど。

【備忘】:wordpressのfeedで出ていたエラーの修正

 非常に間抜けだけどうちのサイトで起きていたエラーの修正の備忘メモ。
 うちのサイト、feed(http://www.chatarou.net/feed/)で何故かエラーが出ていた。Firefoxで見るとフィードページには何も表示されず、Chromeで見ると以下のような感じに文字化けが見られた。

20151130_chrome_screenshot

 で、テーマファイルを差し替えてみると正常にfeedが表示されるので、テーマファイルの問題であろうことは分かっていたのだけど、そこから先の原因切り分けが出来ず放置していた。
 とりあえず、正常に見れるfeedだと↓こんな感じなので

20151130_chrome_screenshot_2

 『続きを読む…』とかの辺りの問題だよなあ、でもなんでそこだけ文字化けするんだ? とか思いつつ放置していたが、今日やっと原因が分かった。
 単に、functions.phpの文字コード指定が間違っていただけだった。
 今まで、『続きを読む…』の文字列はindex.phpに入っているだけだと思っていたので、index.phpの文字コードをリモートとローカル、何度もチェックしては「おかしいなあ、間違ってないよなあ」とか思っていたのだけど、ふと思い立ってthemesフォルダをGrepしたらfunctions.phpにも同じ文字列が入っていて、feed用に使われているのはこっちだと気づいた。
 あー、気づくまで遅いよな、間抜け。

IFTTTとPocketを利用して効率よくRSS配信される記事を読む

僕は少し前から、IFTTTとPocketを連動してブログ記事を読むようになった。
普通、この手の記事はRSSリーダーで読むのが基本だと思うけど、RSSリーダーでは『more…』タグ以降の部分を取得できなくて、ブログ記事の本体は改めてサイトを見に行かないといけないのが煩わしく、僕の場合今まで何度かRSSリーダーにトライしたものの結局自分の利用に根付かない原因になっていた。
が、少し前に
IFTTT – Make Your Work Flow
を活用する方法を知り、便利だと思ったのでここでもご紹介。

準備しておくのは、該当ブログのRSSフィードの配信アドレスと、IFTTTのサイトでの自分用アカウントの取得、それからPocketのアカウントの取得。アカウントの取得は簡単なので解説省略。

まず、IFTTTのサイトに行く。

20151003_ifttt_01

右上の「Create a Recipe」をクリック。

20151003_ifttt_02

「this」をクリック。

20151003_ifttt_03

アイコンがいっぱい出てくる(アルファベット順で並んでいる)ので、「Feed」を選ぶ。

20151003_ifttt_04

「New feed item」を選ぶ。

20151003_ifttt_05

Feed URLを入力し、「Create Trigger」をクリック。RSSのアドレスは、RSS1.0でもRSS2.0でもどっちでもいい。

20151003_ifttt_06

「that」をクリック。

20151003_ifttt_07

「Pocket」をクリック。

20151003_ifttt_08

「Save for later」をクリック。

20151003_ifttt_09

ここは特に何も変更しなくてもいい。TagsのIFTTTが不要なら消したりしてもかまわないが、そんな手続き必要ないだろう。で「Create Action」をクリック。

20151003_ifttt_10

「Recipe Title 」は自由に変えたほうが楽だと思う。最後に「Create Recipe」をクリックすると出来上がり。

20151003_ifttt_11

こんな感じに出来上がり。最初に出来上がった時にはPocketに記事が飛んでくるわけではないのでちょっと不安を覚えるが、該当ブログの方で記事が新しく投稿されると、記事が飛んできてPocketに保存されるので便利です。

Dreamweaverを活用してwordpressサイトをメンテナンスする(3)

前記事に引き続いて。今度は実際に運用しているWordpressサーバのデータを取り込んで、DreamWeaverとの連携を行う。
この辺の作業のやり方を解説しているサイトが見つからなくて本当に苦労した。

WordPressのデータをリモートサーバに準拠させて編集する

一般的な『DreamWeaverをWordpressで使う』の説明はここで終わりなことが多いのですが、僕にはちょっと疑問です。「テーマファイルを適用するのなら、Wordpressのデータは基本的にサーバ準拠のデータじゃないとやりにくいんじゃないの?」と思うのですが、世のデザイナーの人たちはその辺は諦めて作業しているのでしょうか。僕は納得できなかったので、もう少し頑張ってサーバ準拠の環境を作ることまで挑戦しました。
理想的にはローカルにあるテストサーバーで編集→DreamWeaverの同期機能でアップロードして本番環境へ、と行きたいところですがDreamWeaverにはFTPでファイル同期する機能はあるものの、データベースを連携する機能はないのでDreamWeaverだけで完結はできませんでした。
が、リモートのMySQLサーバにあるデータをダウンロードしてきて、ローカル環境のMySQLにデータをインポートしてやることで、より本番環境に近い状態でテーマファイルの編集ができます。

20150311_50_dw

もう一度サイトの管理を編集します。先ほど作ったテストサーバ接続用設定を上書きしてもいいし、新しく作り直してもいいです。

20150311_51_dw

Local serverは先ほど作ったテストサーバーと設定は同じです。今度はそれに追加してRemote serverを設定しておきます。

20150311_52_dw

Remote serverの設定です。モザイクばかりで分かりにくいのですが、FTPアドレスにはレンタルサーバのアドレスを、ユーザ名/パスワードはレンタルサーバからもらっているユーザ名/パスワードを設定します。
ルートディレクトリはレンタルサーバ内のwordpressをインストールしてあるディレクトリを指定します。

20150311_53_dw

これでローカル – テストサーバ – リモートサーバと言う設定が済んだことになります。
なお、wordpressのファイルのうち、wp-config.phpだけは同期するとMySQLへの接続設定などが上書きされ、エラーの原因になりますので、同期しない設定を行います。
同期をキャンセルするには、ファイルを右クリックして『クローク実行』と設定すると、ファイルアイコンに赤い斜め線が入って同期されないことを示します。

20150311_54_dw

一度サイトのビューを狭めて、『リモートサーバー』をプルダウンで選択します。

20150311_55_dw

再びサイトのビューを広げて、リモートサーバーと同期をしましょう(ただし最初はリモートサーバーのものを消さないようGETにしましょう)。

20150311_56_fx

以下、僕が利用している『さくらのレンタルサーバ』を前提にした解説です。
次に、レンタルサーバの設定画面を開きます。【アプリケーションの設定】→【データベースの設定】をクリックし、真ん中画面の【管理ツール ログイン】からレンタルサーバのphpMyAdminを開くことができます。

20150311_57_fx

phpMyAdminにログインしたら、上部メニューから【エクスポート】を選択します。

20150311_58_fx

僕はレンタルサーバで『chatarou_wordpress』と言う名前でWordpress用データベースを格納していますので、これをエクスポートしてやります(画面ではかけてしまいましたが一番右下にエクスポートボタンがあります)。エクスポートはzipで行う方が成功しやすいようです。

20150311_59_fx

今度はローカルのphpMyAdminに移動します。URLやホーム画面をよく見てローカルサーバであることを確認してください。
今度は上部のメニューから【インポート】を選択します。

20150311_60_fx

先ほどエクスポートで出来たsqlファイルをアップロードボタンを押して選択し、インポートを実行してください。

20150311_61_fx

インポートが正常に完了するとメッセージが出ます。次に上部メニューから【SQL】を選択します。

20150311_62_fx

先ほど作った『local_wordpress』ユーザに、今インポートした『chatarou_wordpress』へのアクセス権限を付与します。

<code>
GRANT ALL PRIVILEGES ON `chatarou_wordpress`.* TO 'local_wordpress'@'localhost';
</code>

20150311_63_fx

ユーザへの権限付与が正常に行われたときは戻り値は空です。

20150311_64_explorer

今度はwp-config.phpを再び編集します。

<code>
/ ** MySQL 設定 - この情報はホスティング先から入手してください。 ** //
/** WordPress のためのデータベース名 */
define('DB_NAME', 'chatarou_wordpress'); ←chatarou_wordpressへ書き換える
/** MySQL データベースのユーザー名 */
define('DB_USER', 'local_wordpress'); ←書き換えない
/** MySQL データベースのパスワード */
define('DB_PASSWORD', 'local_user_pass'); ←書き換えない
/** MySQL のホスト名 */
define('DB_HOST', 'localhost'); ←書き換えない
/** データベースのテーブルを作成する際のデータベースの文字セット */
define('DB_CHARSET', 'utf8'); ←書き換えない
/** データベースの照合順序 (ほとんどの場合変更する必要はありません) */
define('DB_COLLATE', ''); ←書き換えない
</code>

ここまでで変更作業は終わりです。もう一度ローカルサイトのWordpressを開いてみると、

20150311_65_fx

20150311_66_fx

このような感じになります(ブログパスなどが若干違うので、トップページはうまく記事が表示できませんでしたが、個別記事は表示できます)。この方法を使うと、複数サイトをDreamweaverで編集することも出来るかもしれません(MySQLファイルのインポートとインポートしたデータベースへのユーザの紐付けをしておけば、wp-config.phpのDB_NAMEを書き換えるだけで別のサイトの編集ができると思います)。