HTTPS SSL を使用するように WAMPServer を構成する方法
これは簡単なプロセスではありません。このチュートリアルで、SSL が機能するようになることを願っています。ただし、機能するように正しく構成することは、完全にあなた次第です。
この道を旅するすべての人のための追加の読み物
Ok、
このチュートリアルは、www.wamphelpers.dev というサイトの作成に基づいています。したがって、その名前が表示されている場所はどこでも、保護しようとしているサイト名に変更してください。
\wamp\www\wamphelpers に安全でないサイトを作成することから始めました。
そのサイトの仮想ホストを追加しました\wamp\bin\apache\apache{version}\conf\extra\httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot "c:/wamp/www"
ServerName localhost
ServerAlias localhost
<Directory "c:/wamp/www">
AllowOverride All
Require local
</Directory>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "c:/wamp/www/wamphelpers"
ServerName wamphelpers.dev
ServerAlias www.wamphelpers.dev
<Directory "c:/wamp/www/wamphelpers">
AllowOverride All
Require local
</Directory>
</VirtualHost>
そのドメイン名を C:\windows\system32\drivers\etc\hosts に追加しました
一部のウィルス チェッカーは HOSTS ファイルへのアクセスをブロックするため、ウィルス チェッカーを無効にするか、hosts ファイルを一時的にブロックしないように設定する必要があります。
127.0.0.1 wamphelpers.dev www.wamphelpers.dev
::1 wamphelpers.dev www.wamphelpers.dev
「管理者として実行」を使用して起動したコマンド ウィンドウから、次のように dnscache を再起動します。
net stop dnscache
net start dnscache
次に、\wamp\www\wamphelpers\index.php に簡単なスクリプトを作成します。
<?php
echo 'Hello, this is the WAMPHELPERS.DEV site homepage';
?>
定義した新しい仮想ホストをアクティブ化するには、\wamp\bin\apache\apache{version}\conf\httpd.conf
この行を編集して見つけます
# Virtual hosts
#Include conf/extra/httpd-vhosts.conf
#
そのようにコメント文字を削除します
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
ファイルを保存します。
ここで Apache を再起動し、続行する前に単純なセキュリティで保護されていない仮想ホスト サイトが機能していることを確認します。
openssl ツールキット。
openssl.exe、ssleay32.dll、および libeay32.dll は、C:\wamp\bin\apache\apachex.yz\bin フォルダーに付属しており、そこにあります。自己署名証明書を作成するために必要なのはこれだけです。
ただし、これらは、インストールしたApacheのどのバージョンでも機能しませんでした。私はいつもこのエラーメッセージを受け取りました。
私がいたApacheバージョンのフォルダに応じて序数が変わったところ。
このエラーが発生した場合でも、心配する必要はありません。
OPENSSL TOOLKIT の最新バージョンをインストールする
こちらから入手できます
注:まだ V1.1 バージョンを使用しないでください。PHP チームはこれらの新しいリンケージを使用して PHP をまだコンパイルしていないため、V1.0 を使用してください。そうなるまでバージョン。
「Win32 OpenSSLv xxx Light」または「Win64 OpenSSLv xxx Light」の最新バージョンを選択して、インストールされている WAMPServer のバージョンと一致するようにします。必要なのはこれだけです。
これにより、このツールキットをインストールするために実行できる .exe ファイルがダウンロードされます。
次の質問が表示されます。C:\windows\system32 に何かをインストールしないように、次のように答えることをお勧めします。結局のところ、これはツールキットであり、適度に頻繁に変更されます。これらのものを別々に保ち、システムのグローバルにしないことが最善です。
それがインストールされたら(インストールで指定したフォルダに)、キーと証明書を生成するプロセスを開始する準備ができているはずです!
キーと証明書を生成します。
ステップ 1: RSA 秘密鍵を生成する
まず、証明書を作成する必要があります。通常の (有料の) プロセスでは、証明書を作成し、それを署名機関に渡します。これが、あなたが本人であること、および証明書を使用するサイトが本物で合法であることを確認するためにデューデリジェンスを行わなければならないため、費用がかかる理由です。
openssl ツールキットは、証明書に使用する RSA 秘密鍵と CSR (証明書署名要求) を生成するために使用されます。最初のステップは、RSA 秘密鍵を作成することです。この鍵は 1024 ビットの RSA 鍵であり、トリプル DES を使用して暗号化され、ASCII テキストとして読み取り可能なように PEM 形式で保存されます。
[b]管理者として実行[/b] を使用してコマンド ウィンドウ (Dos ボックス) を開き、ディレクトリを上記の OpenSSL Toolkit をインストールした場所に変更します。私の場合、これは
CD c:\apps\OpenSSL-Win32\bin
出力を入れるためのフォルダーを作成します(binフォルダーを整理するため)私はウェブサイトを使用しました
md website
次のコマンドを入力します。
openssl genrsa -out website\server.key 2048
これにより、server.key という名前の Web サイト フォルダーに、パス フレーズ キーのないファイルが作成されているはずです。そのファイルが存在することを確認してください。
ステップ 2: CSR (証明書署名要求) を生成する
CSR の生成中に、いくつかの情報を求めるプロンプトが表示されます。これらは、証明書の X.509 属性です。プロンプトの 1 つは、「Common Name (eg server FQDN or YOUR name) []:」です。
SSL で保護するサーバーの完全修飾ドメイン名をこのフィールドに入力することが重要です。
したがって、保護する Web サイトが の場合は、このプロンプトでhttps://www.wamphelpers.dev
入力します。www.wampheplers.dev
そのまま使っwamphelper.dev
ていましServerName
たServerName wamphelpers.dev
質問には何も入力しないでください: A challenge password []: ] Enter キーを押すだけです。SSL が設定された Apache を起動するときにここにパスフレーズを入力すると、Apache は起動せず、次のエラー メッセージが表示されます。
[エラー] 初期化: SSLPassPhraseDialog ビルトインは Win32 ではサポートされていません
基本的に、パスフレーズを入力すると、Apache は起動するたびにそのパスフレーズを要求することになっています。これは明らかにあなたの生活を楽にするものではありませんが、主にWindowsでは実際には機能せず、パスフレーズを要求しようとするとApacheがクラッシュし、上記のエラーが発生します.
CSR を生成するコマンドは次のとおりです。
openssl req -new -key website\server.key -out website\server.csr
Example question and answers:
Country Name (2 letter code) [AU]:GB
State or Province Name (full name) [Some-State]: Hampshire
Locality Name (eg, city) []: Portsmouth
Organization Name (eg, company) [Internet Widgits Pty Ltd]: Wamp Helpers Ltd
Organizational Unit Name (eg, section) []: Information Technology
Common Name (e.g. server FQDN or YOUR name) []: wamphelpers.dev
Email Address []: me@wamphelpers.dev
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: ( leave blank just hit the enter key )
An optional company name []: ( leave blank just hit the enter key )
ステップ 3: 自己署名証明書の生成
この時点で、自己署名証明書を生成する必要があります。これは、CA によって署名された証明書を取得する予定がないか、CA が証明書に署名している間に新しい SSL 実装をテストする必要があるためです。
PRE - WARNING
この証明書はクライアント ブラウザにエラーを生成し、署名する認証局が不明であり、信頼されていないことを示します。自分で証明書に署名しているので、これは避けられませんが、もちろん、信頼の網は私たちが誰であるかを知りません.
この証明書を実際に信頼していることをブラウザに伝える方法を示す、このドキュメントの後半の例を参照してください。
openssl x509 -req -days 365 -in website\server.csr -signkey website\server.key -out website\server.crt
Example output:
Loading 'screen' into random state - done
Signature ok
subject=/C=GB/ST=Hampshire/L=Portsmouth/O=WampHelpers Ltd/OU=Information Technology/CN=www.wamphelpers.dev/emailAddress=riggsfolly@wamphelpers.dev
Getting Private key
ステップ 4: 秘密鍵と証明書のインストール
使用している Apache のバージョンの下に、これら 2 つのディレクトリを作成します。
md c:\wamp\bin\apache\apachex.y.z\conf\ssl.key
md c:\wamp\bin\apache\apachex.y.z\conf\ssl.crt
そして、生成したばかりのファイルを次のようにコピーします。
copy website\server.crt c:\wamp\bin\apache\apachex.y.z\conf\ssl.crt
copy website\server.key c:\wamp\bin\apache\apachex.y.z\conf\ssl.key
ステップ 5: SSL を有効にするように Apache を構成する
httpd.conf を編集し、この行がコメント解除されていることを確認します
LoadModule authn_socache_module modules/mod_authn_socache.so
LoadModule ssl_module modules/mod_ssl.so
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
この行からコメント「#」も削除します
Include conf/extra/httpd-ssl.conf
次に、このブロックの後にその行を移動します....そのように
<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>
# Secure (SSL/TLS) connections
Include conf/extra/httpd-ssl.conf
ステップ 6: PHP を構成して SSL をアクティブ化する
php.ini を編集します (wampmanager メニューを使用して正しいものを編集します)。
コメント「;」を削除します この行から
extension=php_openssl.dll
ステップ 7: 安全なサイトの仮想ホストを構成する
はい、仮想ホストを否定するすべての人にとって、プロセスを回避することはできません。
編集\wamp\bin\apache\apachex.y.z\conf\extra\httpd-ssl.conf
このファイルは Apache によってリリースされ、デフォルトのファイルの場所が含まれています。このファイルの大部分はそのままにしておくことができますが、実際のサイトの場所と他のいくつかのことと一致するように、ここで仮想ホストを構成する必要があります。
これらの行を見つけます
DocumentRoot "c:/Apache2/htdocs"
ServerName www.example.com:443
ServerAdmin admin@example.com
ErrorLog "c:/Apache2/logs/error.log"
TransferLog "c:/Apache2/logs/access.log"
そしてそれらをに変更します
DocumentRoot "c:/wamp/www/wamphelpers"
ServerName wamphelpers.dev:443
ErrorLog "c:/wamp/logs/ssl_error.log"
TransferLog "c:/wamp/logs/ssl_access.log"
探す
SSLCertificateFile "c:/Apache2/conf/server.crt"
そしてに変更
SSLCertificateFile "c:/wamp/bin/apache/apachex.y.x/conf/ssl.crt/server.crt"
探す
SSLCertificateKeyFile "c:/Apache2/conf/server.key"
そしてに変更
SSLCertificateKeyFile "c:/wamp/bin/apache/apachex.y.x/conf/ssl.key/server.key"
探す
<Directory "c:/Apache2/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
そしてに変更
Apache 2.2 の構文
<Directory "c:/wamp/www/wamphelpers">
SSLOptions +StdEnvVars
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order Deny,Allow
Deny from all
Allow from 127.0.0.1 localhost ::1
</Directory>
Apache 2.4 の構文
<Directory "c:/wamp/www/wamphelpers">
SSLOptions +StdEnvVars
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require local
</Directory>
探す
SSLSessionCache "shmcb:c:/Apache2/logs/ssl_scache(512000)"
SSLSessionCacheTimeout 300
そしてそれをに変更します
SSLSessionCache "shmcb:c:/wamp/logs/ssl_scache(512000)"
SSLSessionCacheTimeout 300
探す
CustomLog "c:/Apache24/logs/ssl_request.log" \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
そしてに変更
CustomLog "c:/wamp/logs/ssl_request.log" \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
基本的にconfファイルを調べて、コメントアウトされていないがファイルまたはフォルダーへの参照があるコマンドは、「C:/Apache2....」ではなくWAMPServerフォルダー構造を参照するように変更する必要があります。
ここで、変更したすべてのファイルが保存されていることを確認し、wampmanager メニューを使用して Apache を再起動します。
保護されていないサイトがまだ機能していることを最初にテストします。
次に、ドメイン名の前に「https://」を追加して、新しい保護されたサイトを使用してみてください。つまりhttps://www.wamphelpers.dev
、もちろん一重引用符は使用しません。
Apache が再起動しない場合は、スペルが間違っている可能性があります。次のように構成をテストします:-
コマンド ウィンドウを開く
cd \wamp\bin\apache\apachex.y.z\bin
httpd -t
これにより、すべての構成ファイルが解析され、エラーが見つかったファイル名と行番号が表示されます。
修正して、もう一度やり直してください。
サイトに最初にアクセスすると、このようなメッセージ ページが生成されます。これは FireFox を使用しており、他は多少異なりますが、コンセプトは同じです。
これは、証明書が信頼できる機関によって署名されていないためです。パニックにならないでください。これは発生するはずです。
「リスクを理解しました」をクリックすると、「例外を追加」というボタンが表示されます。証明書サイトの詳細が実際にあなたのものであることを確認した後、「例外を追加」ボタンを押してください。クリアしない限り、このメッセージは再び表示されません。例外リスト。
大きな注意
事項 Apache v2.2.12 および OpenSSL v0.9.8j では、Apache インスタンスごとに複数のサイトを保護できるようになりました。このチュートリアルでは、そのプロセスについては説明しません。詳細については、こちらを参照してください。
ここ
そしてここ
そしてここ
そして、冒頭で述べたように、SSL 構成で使用可能なすべてのオプションについて調査を行い、デフォルトを使用するのではなく、必要に応じて機能させる必要があります。