wordpressは単にブログ用途だけじゃなくって、CMSとしてもある程度のレベルなら十分満足できるOSSだと思う。とくに2.5系?からはウィジェット機能もついてだいぶ自由度も増してきていると思う。
ただ・・・SSL対応が面倒???WP管理画面上でSSL設定とかない。「問合せフォーム」ページをSSL化したい!とかいった場合、どうやっているんだろか?SSL用にheaderやfooterテンプレートでも用意しているんだろか?でもそれはそれでナンセンスな気もする。
ということで、bloginfo(‘template_url’) とかを使わず 独自変数で絶対パスを指定することにした。
まずは・・・HTTPアクセスかHTTPSアクセスかPORT(443)から判定する関数を書く。
functions.php
function make_urls(){
$urls['template_url'] = get_bloginfo('template_url');
$urls['stylesheet_url'] = get_bloginfo('stylesheet_url');
$urls['rss2_url'] = get_bloginfo('rss2_url');
if($_SERVER['SERVER_PORT']==443){
foreach ($urls as $k => $v) {
$urls[$k] = ereg_replace("http","https",$v);
}
}
return $urls;
}
header.phpの一行目に以下を追加
<?php
$urls = make_urls();
?>
後は、既定のテンプレートタグを使わずに、以下の様しておく。
bloginfo('template_url') → echo $urls['template_url']
bloginfo('stylesheet_url') → echo $urls['stylesheet_url']
bloginfo('rss2_url') → echo $urls['rss2_url']
こうしておけば、https:// アクセスがあった場合は、絶対パスをhttp→httpsにするのでわざわざ別のSSL用テンプレートを用意する必要はないはず。
なんかもっといい方法があるのかもしれないが、そんなに時間かけてもしょうがないかなということで・・・
むしろ、他の方法をぜひ教えてほしい。
関連記事(こちらもどうぞ)
CSR生成からベリサイン SSLサーバ証明書のインストールまでの手順をメモ。
ほぼベリサインのマニュアル通り進めばよい。ベリサイン サーバIDヘルプデスク
※ 2007年06月以降は中間CA証明書が必要になっているので、更新の場合は気をつけたほうがいい。
インストール環境は、
CentOS5.1 / Apache2.2.3 / mod_ssl2.2.3
ベリサイン:セキュア・サーバID
以下手順( *** のところは任意)
1. CSR生成
# cd /etc/pki/tls/certs/
# openssl genrsa -rand rand.dat -des3 1024 > 2008key.pem ・・・ 秘密鍵作成
# openssl req -new -key 2008key.pem -out 2008csr.pem ・・・ CSR生成
※ CSR作成時のパスフレーズを忘れないこと
※ この秘密鍵と発行されてくるサーバID(CRT)はペアになるので必ずバックアップをとっておくこと
作成されたCSRを保存して、ベリサインストアフロントからサーバIDを申請する。
ベリサインからの電話確認後、2・3日でサーバIDが届く
2. サーバIDのインストール
# cd /etc/pki/tls/certs/
# vi 2008crt.pem ・・・ 送られてきたメールからコピペ
3. 中間CA証明書のインストール
下記URLから中間CA証明書をコピーする。
セキュア・サーバID中間CA証明書
# cd /etc/pki/tls/certs/
# vi 2008crt.pem ・・・ コピペ
4. ssl.confの設定
# vi /etc/httpd/conf.d/ssl.conf
SSLCertificateFile /etc/pki/tls/certs/2008crt.pem ← サーバー用証明書を指定
SSLCertificateKeyFile /etc/pki/tls/certs/2008key.pem ← サーバー用秘密
SSLCertificateChainFile /etc/pki/tls/certs/2008inca.pem ← CA中間証明書
# /etc/rc.d/init.d/httpd restart
Stopping httpd: [ OK ]
Starting httpd: Apache/2.2.3 mod_ssl/2.2.3 (Pass Phrase Dialog)
Some of your private key files are encrypted for security reasons.
In order to read them you have to provide the pass phrases.
Server ***.com:443 (RSA)
Enter pass phrase: ******* ・・・パスフレーズを入力
Apache:mod_ssl:Error: Pass phrase incorrect (5 more retries permitted).
Enter pass phrase: ******* ・・・パスフレーズを入力
OK: Pass Phrase Dialog successful.
[ OK ]
5. WEBサイトの表示確認
以下のようなHTMLファイル(ssltest.html )をアップして、サイトシールをクリックして、認証が通っているか確認する。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<title>SSL test</title>
</head>
<body>
<script
src=https://seal.verisign.com/getseal?host_name=***.com&size=S&use_flash=YES&use_transparent=YES&lang=ja></script>
</body>
</html>
最後に、秘密鍵等をバックアップしていおく
関連記事(こちらもどうぞ)