カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

XAMPP for Windows における SSL 有効化手順

ローカル開発環境の XAMPP に HTTPS 通信を導入するための、Windows 10/XAMPP 8.2.12 環境での手順を整理して解説します。

事前に準備するもの

  • Windows 10 環境
  • XAMPP 8.2.12
  • Git(Git Bash を利用することを想定しています)
    Git 公式サイト

PHP の OpenSSL 拡張を有効化する

PHP の設定ファイル C:\xampp\php\php.ini を開き、以下の行を見つけてコメントアウトを外します。

extension=php_openssl.dll

これにより、PHP 経由で SSL 証明書に対応できるようになります。

Apache の SSL 用 Virtual Host を設定する

Apache 設定ファイル C:\xampp\apache\conf\extra\httpd-ssl.conf を編集して、HTTPS 通信を受け入れる仮想ホストを追加します。

<VirtualHost *:443>
    DocumentRoot "C:/xampp/htdocs"
    ServerName localhost
    SSLEngine on
    SSLCertificateFile "conf/ssl.crt/my-server.crt"
    SSLCertificateKeyFile "conf/ssl.key/my-server.key"
</VirtualHost>
  • ServerName は用途に応じて変更可能です。
  • DocumentRoot のパスも実際のプロジェクトディレクトリに合わせて調整してください。

動作確認

ここまでの段階で、https://localhost にアクセスすれば、警告は表示されますが強制的にページを表示させることができます。
しかしまだ証明書を作成していないので、セキュリティ保護なしの状態でページが表示されます。

続きを読む…»

49 views

さくらインターネット 常時SSL化の弊害

さくらインターネットで常時SSL化した際に起こる弊害について、
限られた条件下ではありますが、解決法を見つけたので書いておきたいと思います。

まずルートディレクトリになんらかのWEBサイト(WordPressでも何でも)を運用しているとします。
そして下層ディレクトリにWordPressをインストールし、オプションのサブドメインを使用している場合のお話です。

例)test.achoo.jpというサブドメインでルートディレクトリを/achoo/に設定

さくらインターネットのサーバーで共有SSLを利用する場合、SSLを設定できるのは
デフォルトのサブドメインのみです。
オプションのサブドメインで下層ディレクトリをルートディレクトリとしている場合には
対象外となります。
続きを読む…»

1,591 views

SSLでパスフレーズの入力を省略する

apacheにSSLを導入した場合、apacheの起動時にパスフレーズの入力を求められます。
サーバーの再起動時や、プログラム等でのapacheの自動起動でパスフレーズの入力で止まったまま起動しない、という問題が発生します。

[Apache+SSL環境の構築]の最後でも紹介したように、秘密鍵を復号化しておけばパスフレーズの入力を省略できますが、セキュリティ上良くありません。
そこで秘密鍵を復号化することなく、パスフレーズの入力を省略する方法をご紹介します。

apacheのhttpd.confの<ifModule ssl_module>ディレクティブを修正します。

<ifModule ssl_module>
...
    SSLPassPhraseDialog exec:{プログラムの絶対パス}
</ifModule>

通常、SSLPassPhraseDialogの記述はないかと思いますが、
デフォルトはbuiltinとなっており、対話形式でパスフレーズを入力する設定になっています。
続きを読む…»

2,783 views

Apache+SSL環境の構築

Googleが常時SSL接続になり、SEOでもそれが加味されるようになってきました。

また、Google検索からの流入を解析するためにも、自身側のSSL化が必要になってきます。
というのも、HTTPSからHTTPではリファラーが取得できないのです。
自身のサーバーをHTTPSにすればHTTPSからのリファラーを取得することができます。
HTTPSならHTTPからのリファラーも取得することができます。

それに当たって、今回はopensslの導入部分を解説させていただきます。

【バージョンについて】
apache2.2.31
openssl-0.9.8zg
※opensslのインストールディレクトリは/usr/local/sslとします。

【鍵のペア作成と証明書の作成】
SSL通信を利用するには次の3つが必要です。
1.秘密鍵
2.公開鍵+証明書申請情報
3.デジタル証明書

WEBサーバーの秘密鍵の作成

opensslのディレクトリに移動します。

cd /usr/local/ssl/private

秘密鍵作成のための疑似乱数を生成します。
例としてmd5ダイジェスト値を疑似乱数として使用します。

../bin/openssl md5 * > rand.dat

秘密鍵を作成します。

../bin/openssl genrsa -rand rand.dat -des3 1024 > server.key

コマンドを実行すると秘密鍵のパスフレーズを求められますので、
任意のパスフレーズを入力してください。
続きを読む…»

2,340 views