ローカルWebサーバーからActive Directoryにアクセスしようとしています。これを行うには、xamppの最新バージョンとPHP adLDAP というスクリプトを使用しています。正しく理解できたら、SSLを有効にしてhttps URLにアクセスする必要があります。私はそれをグーグルで試してみましたが、運がありません:(誰かがチュートリアルをリンクしたり、Windows 7 64ビットのxampp/ApacheにSSLをインストールする方法を説明できますか?助けていただければ幸いです:)
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を再起動します。
OpenSSLはXAMPP 1.7.2のphp 5.3でコンパイルおよび有効化されているため、別個の拡張dllは不要になりました。
ただし、PHP.iniファイルでextension=php_openssl.dll
ここで提案されたもののほとんどを実行しましたが、まだ動作しませんでした。これを試してみましたが、うまくいきました:XAMPPコントロールパネルを開き、ApacheモジュールのConfigボタンを見つけます。 「構成」ボタンをクリックして、「PHP(php.ini)」を選択します。任意のテキストエディターで開き、php_opensslの前の半列を削除します。 Apacheを保存して再起動します。それでいい!
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で機能しました。
私はインターネットですべての答えとチュートリアルを行ってきましたが、ここに基本的な手順からenableSSL(https)localhostで[〜#〜] xampp [〜#〜 ]:
実行-> "C:\ xampp\Apache\makecert.bat"(Windowsをダブルクリック)選択したパスワードを入力し、すべてを入力してEnterキーを押しますが、 "localhost"を定義します!!!ここで尋ねられたら注意してください:
共通名(例:サーバーのFQDNまたはあなたの名前)[]:localhost
(証明書はドメイン名ゾーンごとにのみ発行されます!)
XAMPP-> Apache-> Config-> httpd.conf( "C:\ xampp\Apache\conf\httpd.conf")
LoadModule ssl_module modules/mod_ssl.so(削除#行の先頭から)
XAMPP-> Apache-> Config-> php.ini( "C:\ xampp\php\php.ini")
extension = php_openssl.dll(削除、行の先頭から)
Apacheとchromeを再起動してください!
問題または証明書のステータスを確認します。
Chrome-> F12->セキュリティ->証明書の表示
ここで提案されたものをすべて実行しましたが、curl
を使用していたため、コードはまだ機能しませんでした
PHPファイルでcurl
を使用している場合、curlはデフォルトですべてのsslトラフィックを拒否するようです。私のために働いた簡単な修正は追加することでした:
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
呼び出す前に:
curl_exec():
phpファイル内。
これにより、SSL証明書のすべての検証が無効になると思います。