web-dev-qa-db-ja.com

ローカルのxampp / ApacheサーバーでSSLをセットアップする

ローカルWebサーバーからActive Directoryにアクセスしようとしています。これを行うには、xamppの最新バージョンとPHP adLDAP というスクリプトを使用しています。正しく理解できたら、SSLを有効にしてhttps URLにアクセスする必要があります。私はそれをグーグルで試してみましたが、運がありません:(誰かがチュートリアルをリンクしたり、Windows 7 64ビットのxampp/ApacheにSSLをインストールする方法を説明できますか?助けていただければ幸いです:)

23
horgen

Apacheパート- https:// localhost/xyz を開くことができます

すべてのssl固有の構成を含む構成ファイルxampp/Apache/conf/extra/httpd-ssl.confがあります。それはかなりよく文書化されているので、コメントを読んで http://httpd.Apache.org/docs/2.2/ssl/ を見てください。ファイルは<IfModule ssl_module>で始まるため、Apacheがmod_sslモジュールで起動されている場合にのみ効果があります。

エディターでファイルxampp/Apache/conf/httpd.confを開き、次の行を検索します

#LoadModule ssl_module modules/mod_ssl.so

ハッシュマークを削除し、ファイルを保存してApacheを再起動します。これで、Webサーバーはxamppの基本/デフォルトssl構成で開始するはずです。テストには十分ですが、Apacheのドキュメントでmod_sslについてもう少し読んでください。


PHPパート-adldapで ldap over ssl を使用できるようにする

adldapで「ldap over ssl」接続を使用するには、phpのopenssl拡張機能が必要です。 openssl拡張機能は、xamppを備えたdllとして出荷されます。このdllを読み込むには、phpに「伝える」必要があります。 php.iniにextension=nameofmodule.dllを含めることにより
実行

echo 'ini: ', get_cfg_var('cfg_file_path');

PHPインストールで使用するiniファイルが表示されます(php-Apache-moduleとphp-cliバージョンでは異なる場合があります)。
エディターでこのファイルを開き、検索します

;extension=php_openssl.dll

セミコロンを削除し、ファイルを保存して、Apacheを再起動します。

参照: http://docs.php.net/install.windows.extensions

28
VolkerK

OpenSSLはXAMPP 1.7.2のphp 5.3でコンパイルおよび有効化されているため、別個の拡張dllは不要になりました。

ただし、PHP.iniファイルでextension=php_openssl.dll

6
Flak DiNenno

ここで提案されたもののほとんどを実行しましたが、まだ動作しませんでした。これを試してみましたが、うまくいきました:XAMPPコントロールパネルを開き、ApacheモジュールConfigボタンを見つけます。 「構成」ボタンをクリックして、「PHP(php.ini)」を選択します。任意のテキストエディターで開き、php_opensslの前の半列を削除します。 Apacheを保存して再起動します。それでいい!

4
dc-aoxn

XAMPPでSSLを有効にするには、自己署名証明書を作成し、それらの証明書をインストールします。以下のコマンドを入力して、証明書を生成し、sslフォルダーに移動します。

openssl genrsa -des3 -out server.key 1024

openssl req -new -key server.key -out server.csr

cp server.key server.key.org

openssl rsa -in server.key.org -out server.key

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

cp server.crt /opt/lampp/etc/ssl.crt/domainname.crt

cp server.key /opt/lampp/etc/ssl.key/domainname.key

(スーパーユーザーでない場合は、各コマンドでSudoを使用します)

次に、[XAMPP_HOME] /etc/httpd.confでmod_sslが有効になっていることを確認します。

LoadModule ssl_module modules/mod_ssl.so

次のように[XAMPP_HOME] /etc/extra/httpd-ssl.confを編集して、仮想ホスト(この例では「localhost.domainname.com」)を追加します。

<virtualhost 127.0.1.4:443>
    ServerName localhost.domainname.com
    ServerAlias localhost.domainname.com *.localhost.domainname.com
    ServerAdmin admin@localhost

    DocumentRoot "/opt/lampp/htdocs/"

    DirectoryIndex index.php

    ErrorLog /opt/lampp/logs/domainname.local.error.log
    CustomLog /opt/lampp/logs/domainname.local.access.log combined

    SSLEngine on
    SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
    SSLCertificateFile /opt/lampp/etc/ssl.crt/domainname.crt
    SSLCertificateKeyFile /opt/lampp/etc/ssl.key/domainname.key

    <directory /opt/lampp/htdocs/>
            Options Indexes FollowSymLinks
            AllowOverride All
            Order allow,deny
            Allow from all
    </directory>
    BrowserMatch ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
</virtualhost>

/ etc/hostsに次のエントリを追加します。

127.0.1.4 localhost.domainname.com

ここで、証明書をインストールするか、ブラウザに証明書をインポートしてみてください。これを確認しましたが、これはUbuntuで機能しました。

2
sAn

私はインターネットですべての答えとチュートリアルを行ってきましたが、ここに基本的な手順からenableSSL(https)localhostで[〜#〜] xampp [〜#〜 ]

必須:

  1. 実行-> "C:\ xampp\Apache\makecert.bat"(Windowsをダブルクリック)選択したパスワードを入力し、すべてを入力してEnterキーを押しますが、 "localhost"を定義します!!!ここで尋ねられたら注意してください:

    共通名(例:サーバーのFQDNまたはあなたの名前)[]:localhost

    (証明書はドメイン名ゾーンごとにのみ発行されます!)

  2. Apacheを再起動します
  3. Chrome->設定->「証明書」の検索->証明書の管理->信頼されたルート証明機関->インポート-> "C:\ xampp\Apache\conf\ssl.crt\server.crt"->「はい」を要求する確認のため!
  4. https://localhost/testssl.php -> [OK、Now Green!](任意のhtmlテストファイル)

オプション:(上記が機能しない場合は、これらの手順をさらに実行します)

  1. XAMPPを管理者として実行(スタート-> XAMPP->右クリック->管理者として実行)
  2. XAMPP-> Apache-> Config-> httpd.conf( "C:\ xampp\Apache\conf\httpd.conf")

    LoadModule ssl_module modules/mod_ssl.so(削除#行の先頭から)

  3. XAMPP-> Apache-> Config-> php.ini( "C:\ xampp\php\php.ini")

    extension = php_openssl.dll(削除、行の先頭から)

  4. Apacheとchromeを再起動してください!

問題または証明書のステータスを確認します。

Chrome-> F12->セキュリティ->証明書の表示

1
Tarik

ここで提案されたものをすべて実行しましたが、curlを使用していたため、コードはまだ機能しませんでした

PHPファイルでcurlを使用している場合、curlはデフォルトですべてのsslトラフィックを拒否するようです。私のために働いた簡単な修正は追加することでした:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

呼び出す前に:

 curl_exec():

phpファイル内。

これにより、SSL証明書のすべての検証が無効になると思います。

0
Chris Dutrow