先人の方々が書いてくれているので、自分は楽に設定できた。
photo credit: Axel Schwenke via photo pin cc
ことの発端
Windows Server 2008 R2にApacheインストールして、Webサイトを構築するが、https接続が必要というので、どうすればいいのか試してみた。
試した内容
インストールしてみたのは、「httpd-2.2.22-win32-x86-openssl-0.9.8t.msi」。
手順を知りたいだけなので、試したOSは、Windows XP SP3。
手順
コマンドプロンプトを開いて、
cd C:\Program Files\Apache Software Foundation\Apache2.2\bin
に移動。
C:\Program Files\Apache Software Foundation\Apache2.2\bin>openssl
を入力して、Enter。
OpenSSL> genrsa -out ../conf/server.key 1024
Loading 'screen' into random state - done
Generating RSA private key, 1024 bit long modulus
..++++++
.....................++++++
e is 65537 (0x10001)
入力すると、ファイルが作成された。
OpenSSL> req -new -key ../conf/server.key -out ../conf/server.csr -config ../conf/openssl.cnf
Loading 'screen' into random state - done
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]:Aichi
Locality Name (eg, city) :Nagoya
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Compay
Organizational Unit Name (eg, section) :development
Common Name (e.g. server FQDN or YOUR name) :192.168.1.11
Email Address :sample@example.com
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password :
An optional company name :
途中で入力された内容は、適当に答えたら、ファイルが作成された。
OpenSSL> x509 -in ../conf/server.csr -out ../conf/server.crt -req -signkey ../conf/server.key -days 365
Loading 'screen' into random state - done
Signature ok
subject=/C=JP/ST=Aichi/L=Nagoya/O=Company/OU=development/CN=192.168.1.11/emailAddress=sample@example.com
Getting Private key
入力すると、ファイルが作成された。
後は、httpd.confの
#LoadModule ssl_module modules/mod_ssl.so
↓
LoadModule ssl_module modules/mod_ssl.so
と
#Include conf/extra/httpd-ssl.conf
↓
Include conf/extra/httpd-ssl.conf
をしてApache再起動したら、httpsでもつながるようになった。
httpでのアクセスをhttpsに切り替える方法
調べると.htaccessを使う方法もあったが、今回はhttpd.confの
Listen 80
の下に
<VirtualHost *:80>
Redirect / https://192.168.1.11/
</VirtualHost>
を追加してApache再起動したら、http://192.168.1.11/にアクセスすると、https://192.168.1.11/にアクセスするようになった。
今回学んだこと
SSL の証明書の作成は、ニセモノだったら、簡単に作れることがわかった。ブラウザで警告表示されるけど。
本番は当然使わないが、テストでしか使わないんだったら、この方法でも十分だと思う。