web-dev-qa-db-ja.com

wampサーバーへのインストールSSL:httpd-ssl.confのエラー

私はローカルホストにSSLを設定しようとしています (http://madurad.wordpress.com/2014/04/25/redirect-http-to-https-with-wamp-server/ 他の多くの人が成功することはできません。 httpd-ssl.confの構文にこだわっています。設定すると、Apacheサーバーがダウンします

<Directory "c:/wamp/www/"> 
   Options Indexes FollowSymLinks  
   AllowOverride all 
   Require all granted 
   SSLOptions +StdEnvVars
</Directory>

私は次のような他の多くを試しました

<Directory "c:/wamp/www/"> 
   SSLOptions +StdEnvVars
</Directory>

取得できない問題とは...

15

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ファイルへのアクセスをブロックするため、ウイルスチェッカーを無効にするか、一時的にホストファイルをブロックしないように構成する必要があります

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フォルダー自己署名証明書を作成するために必要なものはこれだけです!!

HOWEVER:これらは私がインストールしたApacheのどのバージョンでも動作しませんでした。私はいつもこのエラーメッセージを受け取りました。

error message

私がいたApacheバージョンフォルダに応じて序数が変更された場所。

このエラーが発生した場合、心配する必要はありません。

OPENSSL TOOLKITの最新バージョンをインストールします

これは取得できます ここから

注:V1.1バージョンをまだ使用しないでください。PHPチームはまだコンパイルしていませんPHPこれらの新しいリンケージでは、V1.0。?のバージョンをそのまま使用します。

インストールされているWAMPServerのバージョンに合わせて、最新バージョンの「Win32 OpenSSLv xxx Light」または「Win64 OpenSSLv xxx Light」を選択してください。

これにより、このツールキットをインストールするために実行できる.exeファイルがダウンロードされます。

次の質問が表示されます。このように答えることをお勧めします。そうすると、C:\ windows\system32に何かをインストールすることになりません。結局これはツールキットであり、かなり頻繁に変更されます。これらを別々に保ち、システムをグローバルにしないことが最善です。

openssl install suggestion

インストールしたら(インストールで指定したフォルダーに)、キーと証明書の生成プロセスを開始する準備ができているはずです!


鍵と証明書を生成します。

ステップ1:RSA秘密鍵を生成する

まず、証明書を作成する必要があります。通常の(支払われる)プロセスは、証明書を作成し、署名機関に渡すことです。だからこそ、彼らはあなたが本人であることを証明し、証明書を使用するサイトが本物で合法であることを確認するのにお金がかかるのです。

Opensslツールキットは、証明書に使用されるRSA秘密鍵とCSR(証明書署名要求)を生成するために使用されます。最初のステップは、RSA秘密鍵を作成することです。このキーは、Triple-DESを使用して暗号化され、PEM形式で保存される1024ビットRSAキーで、ASCII text。

[b]管理者として実行[/ b]を使用してコマンドウィンドウ(Dosボックス)を開きます。ディレクトリを上記のOpenSSL Toolkitをインストールした場所に変更します。私の場合、これは

CD c:\apps\OpenSSL-Win32\bin

出力用のフォルダーを作成します(binフォルダーを整理するため)私はWebサイトを使用しました

md website

次のコマンドを入力します。

openssl genrsa -out website\server.key 2048

これにより、server.keyという名前のファイルがWebサイトフォルダーに作成され、パスフレーズキーなしでファイルが存在することを確認する必要があります。

ステップ2:CSR(証明書署名要求)を生成する

CSRの生成中に、いくつかの情報の入力を求められます。これらは、証明書のX.509属性です。プロンプトの1つは、「Common Name(e.g. server FQDN or YOUR name)[]:」に対するものです。 このフィールドには、SSLで保護するサーバーの完全修飾ドメイン名を入力することが重要です。したがって、保護するWebサイトがhttps://www.wamphelpers.devと入力し、このプロンプトでwww.wampheplers.devと入力します。 ServerNamewamphelper.devであるため、ServerName wamphelpers.devを使用しました

質問には何も入力しないでください:Aチャレンジパスワード[]:] Enterを押すだけです。 SSLが設定されたApacheを起動するときにここにパスフレーズを入力すると、Apacheは起動せず、このエラーメッセージが表示されます。

[error] Init: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 []: [email protected]

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/[email protected]
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 [email protected]
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を使用していますが、その他は若干異なりますが、コンセプトは同じです。

enter image description here

これは、証明書が信頼できる機関であるDONT PANICによって署名されていないためです。これは起こるはずです。

「リスクを理解します」をクリックすると、「例外の追加」というボタンが表示されます。証明書サイトの詳細が実際にあなたのものであることを確認した後、「例外の追加」ボタンを押します。クリアしない限り、このメッセージは表示されません。例外リスト。

BIG NOTEApache v2.2.12およびOpenSSL v0.9.8jでは、Apacheインスタンスごとに複数のサイトを保護できるようになりました。このチュートリアルでは、そのプロセスについては説明しません。詳細はこちらをご覧ください:

ここ

およびここ

およびここ

そして、上で言ったように、今ではSSL設定で利用可能なすべてのオプションでいくつかの研究を行い、デフォルトを使用するのではなく、あなたが望むように動作させる必要があります。

72
RiggsFolly

モジュールをアクティブにする必要がありますLoadModule socache_shmcb_module modules/mod_socache_shmcb.soファイル内httpd.conf wampserver 2.5で。そうでない場合、Apacheは次のメッセージをスローします。

AH00526:C:/wamp/bin/Apache/apache2.4.9/conf/extra/httpd-ssl.confの75行目の構文エラー:SSLSessionCache: 'shmcb'セッションキャッシュはサポートされていません(既知の名前:)。たぶん、適切なsocacheモジュール(mod_socache_shmcb?)をロードする必要があります。

次のようなエラーが発生した場合:

Modules/mod_ssl.soをサーバーにロードできません:指定されたモジュールが見つかりませんでした。

  1. Wampフォルダーでlibeay32.dllを検索してみてください。おそらく{wamp folder}/bin/php/php {version 7} /にあります。

  2. Libeay32.dllとssleay32.dllをコピーして、{wamp folder}/bin/Apache/apache {version 2.x}/bin /および{wamp folder}/bin/php/php {verion 5.x}に貼り付けます。配置するものは必ずバックアップしてください。

  3. httpd -tを実行して構文をテストします

注:これは、wamp 3.0.6のApache openssl部分の間違いによるものと考えています。幸いなことにphp7フォルダーでは、これらのdllはApacheとphp5と互換性があります。

2
Anson Fong

@RiggsFolly:チュートリアルの小さなエラー/タイプミス/追加。以下は、Windows 7 SP1 64ビットでWAMPServer 2.5 64ビット(Apache 2.4.9およびPHP 5.5.12))と組み合わせて使用​​されます。

-httpd-vhosts.confはextra/httpd-vhosts.confにあります

-hostsファイルを編集しようとするときは、ウイルススキャナを必ず無効にしてください。それらのいくつかは、hostsファイルへのアクセスをブロックします。

-hostsファイルを編集するときは必ず管理者としてtexteditorを開いてください。そうしないと、保存しようとしてエラーが発生します。

-ホスト行の先頭にある#を削除することを忘れないでください

-WAMPServer 64ビットを使用する場合は、必ずOpenSSLの64ビットバージョンをダウンロードしてください

-ステップopenssl genrsa -out website\server.key 2048は、privkey.pemではなくserver.keyファイルを作成します!

-file\wamp\bin\Apache\apachex.yz\conf\httpd-ssl.confは\ wamp\bin\Apache\apachex.yz\conf\extra\httpd-ssl.confにあります(これはWAMPServerに依存する可能性がありますバージョン)

-私は、Skypeが使用していると思われるポートとして、http(80-> 8080)とhttps(443-> 444)に異なるポートを使用する必要がありました。異なるポートを使用する場合は、このチュートリアルで80または443が表示されるすべての場所でこれらを使用してください。

-socache_shmcb_moduleも有効にする必要がありました。 「httpd -t」にもこれが記載されています。

2
Jan

@ RiggsFolly:鍵付きの自己署名証明書は、たとえばここで簡単に生成できます... http://www.selfsignedcertificate.com / なので、ステップ4からチュートリアルを開始できます(標準の80仮想サーバーも実行していました)。

とにかく言及されたものはデフォルトのWAMPインストールですでに有効になっています(バージョンごとに変わると思います)が、残りは私を大いに助けてくれました。そして実際には1つのことが欠けていました... "httpd.conf"の次の行もコメント解除しなければなりませんでした

LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
1
Pěna

すべての前に:

1).WAMPをシャットダウンし、配列C:\wamp\scripts\config.inc.phplibeay32.dll、行133、139からssleay32.dll移動に進みます

2)。公式サイトからOpenSSLをインストールします。OSx64のバージョンに注意してください。

コマンド・プロンプト:

3).cd C:\wamp\bin\Apache\apache2.4.23\bin

4)。 openssl req -new > localhost.csr

5)。 openssl rsa -in privkey.pem -out localhost.key

6)。 openssl x509 -in localhost.csr -out localhost.crt -req -signkey localhost.key -days 365 -sha256 -extfile v3.ext

更新: from Chrome 58 Subject Alternative Nameを提供する必要があります。この名前は拡張ファイルv3.extから取得できます。

authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names

[alt_names]
DNS.1 = 127.0.0.1
DNS.2 = localhost

「localhost」を挿入することは非常に重要です。

7).localhost.keyとlocalhost.crtを取得し、それらをC:\wamp\bin\Apache\apache2.4.23\conf\keyに配置します(適切なディレクトリを作成する前に)

構成:

8)C:\wamp\bin\Apache\apache2.4.23\bin\php.iniで有効にし、

C:\wamp\bin\php\php5.6.25\php.iniextension=php_openssl.dll

9).C:\wamp\bin\Apache\apache2.4.23\conf\httpd.confに進み、コメントを外します:

LoadModule ssl_module modules/mod_ssl.so

Include conf/extra/httpd-ssl.conf

Include conf/extra/httpd-vhosts.conf

LoadModule socache_shmcb_module modules/mod_socache_shmcb.so 

10)。 C:\wamp\bin\Apache\apache2.4.23\conf\extra\httpd-ssl.confに進む

変更を行います。

SSLSessionCache "shmcb:c:/wamp/bin/Apache/apache2.4.23/logs/ssl_scache(512000)"

SSLSessionCacheTimeout 300

VirtualHost _default_:443

DocumentRoot "c:/wamp/www/"

ServerName localhost:443

ErrorLog "c:/wamp/bin/Apache/apache2.4.23/logs/ssl_error.log"

、(存在しない場合はファイルを作成します)

TransferLog "c:/wamp/bin/Apache/apache2.4.23/logs/access.log"

SSLCertificateFile "c:/wamp/bin/Apache/apache2.4.23/conf/key/localhost.crt"

SSLCertificateKeyFile "c:/wamp/bin/Apache/apache2.4.23/conf/key/localhost.key"

<Directory "c:/wamp/www/">
    SSLOptions +StdEnvVars
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Require local
</Directory>

  CustomLog "c:/wamp/bin/Apache/apache2.4.23/logs/ssl_request.log"

証明書の取り扱い:

11).Win + Rを押して「certmgr.msc」を挿入し、servercert.crtを「信頼されたルート認証局」にインポートします。

12)。コマンドプロンプトでサーバーを確認してください 'httpd -t'は 'Syntax OK'であるべきです

13)。 Wampを起動し、https://localhostにリンクします

これが役立つことを願っています

注: Mozillaの動作に関するこの記事をお読みください:

https://blog.mozilla.org/security/2014/09/23/phasing-out-certificates-with-sha-1-based-signature-algorithms/
1
Kirill Shur

エラーがある場合:

Modules/mod_ssl.soをサーバーにロードできません:オペレーティングシステムは%1を実行できません

それから:

  1. ここにWin32 OpenSSLをインストールします http://slproweb.com/products/Win32OpenSSL.html
  2. Libeay32.dll、ssleay32.dllをwamp php binフォルダー(C:\ wamp64\bin\php\php5.6.19)にコピーして貼り付けます
  3. Apacheを再起動します

注:Wampサーバー3でテスト済み

1
Tsounabe