[SSL] OpenSSL for Windows

インストール

Windows 10 64bit, Apache24を前提にインストールします。

  1. http://slproweb.com/products/Win32OpenSSL.html から、Win64 OpenSSL v1.1.0gをダウンロードする。
  2. exeファイルをクリックしインストールを開始する。
  3. インストール先を C:\OpenSSL とする。
  4. dllの保存先を/binにする。
  5. 環境変数でパスを通しておく PATH: C:\Openssl\bin;

秘密鍵の作り方

コマンドプロンプトを起動し、opensslを起動します。

Microsoft Windows [Version 10.0.16299.125]
(c) 2017 Microsoft Corporation. All rights reserved.

C:\Users\username>openssl
OpenSSL> version
OpenSSL 1.1.0g  2 Nov 2017
OpenSSL>

まずは、バージョンが表示されることを確認します。

次に、パスワード無しの秘密鍵を作ります。c:\tempフォルダをつくります。

OpenSSL> genrsa -out c:\temp\server.key 2048
CSRファイルの作り方
>OpenSSL req -new -key d:\temp\server.key -out d:\temp\server.csr
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]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:
Email Address []:

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

自称証明書の作り方

実験用であれば、自分で証明書を発行する。必要ならば、業者に依頼する。

OpenSSL> x509 -days 3650 -req -signkey d:\temp\server.key -in d:\temp\server.csr -out d:\temp\server.crt
Signature ok
Getting Private key
OpenSSL>

できあがったserver.key, server.csr, server.crtをc:\apache24\confにコピーする。

httpd.confの設定

httpd.confの設定を行う

#LoadModule ssl_module modules/mod_ssl.so
#LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
#Include conf/extra/httpd-ssl.conf

のコメント (#) を外す

認証キーの登録

SSLCertificateFile "c:/Apache24/conf/server.crt" 
SSLCertificateKeyFile "c:/Apache24/conf/server.key"

Apacheを再起動する。

https://localhost/

にアクセスする。なお、自分で作った証明書なので、ブラウザによっては不審なサイトと表示されるので注意すること

SSL通信を必須にする

最近は通信すべてSSL必須が推奨されている。

<Directory "SSLにしたいパス">
 SSLRequireSSL
</Directory>

または.htaccessに

 SSLRequireSSL

と書く。