さくらのレンタルサーバーで動かしている ドラクエ攻略FAQfswikiを使っているのですが、この度バージョンアップがあったので、サーバー側もバージョンアップすることにしました。

せっかくなので、同じく古いままになっていたローカル環境もアップデート、というかxamppを再セットアップしました。

また、dqfaqはさくら、というかLet’s Encrypt が提供してるSSLサーバー証明書を使ってHTTPSでアクセスできるようにしているので、ローカルにも同じ環境、つまりHTTPSでテストできるようにしました。
ただし、さくらからは証明書のエクスポートができない(プランによる?)のて、ローカル側は自己証明書(オレオレ証明書)にしています。

ローカルの環境はwindows10です。


1.xamppのインストール


これは特に難しくありません。公式サイトから最新版をダウンロードし、ウィザードに従ってインストールすれば終わりです。


2.ハードリンク(シンボリックリンク)の作成


xamppをそのままインストールした場合、おそらく、本番サーバー側の各種ファイルパスと、ローカルのファイルパスが異なると思います
この場合、perlの /usr/bin/perl などのパスが、ローカル側に通っていないので、テスト環境と本番環境で設定を変えないと動作しません。

それは面倒くさいので、ハードリンクを作成しておきます。

コマンドプロンプトを「管理者として実行」し、以下を入力すればOKです。
ローカルが「C:\xampp\perl\bin\perl.exe」、サーバ側が「/usr/bin/perl」の場合です。

mklink /d c:\usr c:\xampp\perl



3.自己証明書(オレオレ証明書)の作成


コマンドプロンプトを起動します。
まずはカレントディレクトリを変更します。

cd C:\xampp\apache\bin


秘密鍵の作成します (server.key)。
パスフレーズの入力を求められるので、任意のパスフレーズを入力します(password の部分)

openssl genrsa -aes128 -out server.key 2048
Generating RSA private key, 2048 bit long modulus
............................+++
............................................+++
e is 65537 (0x10001)
Enter pass phrase:password
Verifying - Enter pass phrase:password

2018-04-07image005.png

今回はローカル環境で使うので、秘密鍵のパスフレーズを解除しておきます。
server.key の名前を変更します。
copy server.key server.key.back


パスフレーズを解除(復号化)します。
パスフレーズの入力を求められるので、パスフレーズを入力します。
openssl rsa -in server.key.back -out server.key
Enter pass phrase for server.key.back:パスフレーズ
writing RSA key


復号化した秘密鍵の内容は以下のように、ENCRYPTED の記述がなくなります。
-----BEGIN RSA PRIVATE KEY-----
(省略)
-----END RSA PRIVATE KEY-----

2018-04-07image016.png

CSR(Certificate Signing Request)を作成します。
サーバのURL(FQDN)の部分、以下で言えば「www.dqfaq.com」は必ずテストするローカル環境と合わせてください。
openssl req -new -key server.key -sha256 -out dqfaq.csr -config ../conf/openssl.cnf

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) [AU]:JP
State or Province Name (full name) [Some-State]:Osaka
Locality Name (eg, city) []:Osaka-shi
Organization Name (eg, company) [Internet Widgits Pty Ltd]:ekpro
Organizational Unit Name (eg, section) []:ekpro
Common Name (e.g. server FQDN or YOUR name) []:www.dqfaq.com
Email Address []:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

2018-04-07image012.png


証明書(公開鍵)を作成 (dqfaq.crt) します。
本来はCA(Certification Authority, 認証局)による署名がされますが、今回は自分自身の秘密鍵を使います。つまり、自己証明(オレオレ)です。
openssl x509 -in dqfaq.csr -days 1800 -req -signkey server.key -sha256 -out dqfaq.crt

Signature ok
subject=C = JP, ST = Osaka, L = Osaka-shi, O = ekpro, OU = ekpro, CN = www.dqfaq.com
Getting Private key

2018-04-07image013.png

C:\xampp\apache\bin に今回作成した各ファイル(server.key、dqfaq.csr、dqfaq.crt)ができています。
image014.png

Apache2.4でバーチャルホストに自己証明書を入れる方法(その2)に続く)