ソフトウェア開発者の日常

こだわりなく書きたいことを書いていきます。

Windows版Apache 2.2で、https接続にする方法

先人の方々が書いてくれているので、自分は楽に設定できた。

f:id:AJYA:20120720220613j:plain

photo credit: Axel Schwenke via photo pin cc

 

ことの発端

Windows Server 2008 R2Apacheインストールして、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 の証明書の作成は、ニセモノだったら、簡単に作れることがわかった。ブラウザで警告表示されるけど。

本番は当然使わないが、テストでしか使わないんだったら、この方法でも十分だと思う。