さくらVPSにジオトラスト(RapidSSL )のSSLを導入した

さくらのレンタルサーバ ビジネスプロ

はっ!!
初歩を忘れないように手順を書き残す、、、

ここから先の作業はroot権でやるのが無難だと思う
(;´∀`) (;´Д`) (;・∀・) (;゚Д゚) (;^ω^)

【まずは、導入するであろうサーバーでCSRを作成する】
①opensslで乱数を生成
openssl md5 * > rand.dat

こんななのができる
——————–
-rw-rw-r– 1 hogege hogege 48 6月 8 09:01 rand.dat
——————–

※Opensslをインストールしていな場合はコマンドで確認してね。(VPSはデフォルトで入ってると思います)
——————–
[hogege@hogehoge.com home]$ yum list installed | grep openssh
openssh.x86_64 4.3p2-72.el5_6.3 installed
openssh-clients.x86_64 4.3p2-72.el5_6.3 installed
openssh-server.x86_64 4.3p2-72.el5_6.3 installed

——————–
※インストールされていなかったらインストールしましょう。
——————–
[hogege@hogehoge.com home]$ yum install openssl
——————–

②生成した乱数から秘密Keyを作成
このときチャレンジパスワードが聞かれるが、特に入れても入れなくてもどっちでも問題ないけど、入れなくていいと思う。
openssl genrsa -rand rand.dat -des3 1024 > 2011pri.pem

↓こんな感じ
——————————
[hogege@hogehoge.com sslsample]$ openssl genrsa -rand rand.dat -des3 2048 > 2011pri.pem
48 semi-random bytes loaded
Generating RSA private key, 2048 bit long modulus
………………………..++++++
……++++++
e is 65537 (0x10001)
Enter pass phrase: ←パスワード(忘れたら詰む)
Verifying – Enter pass phrase:   ←パスワード(忘れたら詰む)
[hogege@hogehoge.com sslsample]$ ll
合計 8
-rw-rw-r– 1 hogege hogege 963 6月 8 09:04 2011pri.pem  ←元祖秘密鍵(なくしたら詰む!)

——————————
※ジオトラストは2048bitしか対応していないので、今回は2048bitで作りましたが、まだモバイルは2048bitに対応していないケータイも多少あるので、どこかのタイミングで1024bitに切り替えたいかも。。。

③秘密鍵から公開鍵を作成
このときチャレンジパスワードを設定していると入力を求められる。
openssl req -new -key 2011pri.pem -out 2011csr.pem

↓こんな感じ
——————————
[hogege@hogehoge.com sslsample]$ openssl req -new -key 2011pri.pem -out 2011csr.pem
Enter pass phrase for 2011pri.pem:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.
—–
Country Name (2 letter code) [GB]:JP
※日本なんでJP

State or Province Name (full name) [Berkshire]:Tokyo
※東京行きたいのでTokyo

Locality Name (eg, city) [Newbury]:Shinbashi
※新橋をよく知らないのでShinbashi

Organization Name (eg, company) [My Company Ltd]:hogehoge-yatta
※会社名を適当に

Organizational Unit Name (eg, section) []:hoge system
※システム名を適当に

Common Name (eg, your name or your server’s hostname) []:hogehoge.com
※SSLを設定したいサイトのドメインを指定

Email Address []:
※未入力でおk

Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []:
※未入力でおk

An optional company name []:
※未入力でおk

——————————

④秘密鍵からパスワードを外す。
これをしないとサーバーの手動自動での再起動できなくなったりします。
openssl rsa -in 2011pri.pem -out 2011key.pem

こんな感じ↓
——————————
[hogege@hogehoge.com sslsample]$ openssl rsa -in 2011pri.pem -out 2011key.pem
Enter pass phrase for 2011pri.pem: ←秘密鍵作成時のパスワードを入力
writing RSA key
[hogege@hogehoge.com sslsample]$ ll
合計 16
-rw-rw-r– 1 hogege hogege 672 6月 8 09:14 2011csr.pem
-rw-rw-r– 1 hogege hogege 887 6月 8 09:37 2011key.pem
-rw-rw-r– 1 hogege hogege 963 6月 8 09:12 2011pri.pem
-rw-rw-r– 1 hogege hogege 48 6月 8 09:01 rand.dat
[hogege@hogehoge.com sslsample]$

——————————

さてここからがジオトラスト関連です。
申し込みをする。
RapidSSL を選択し、約3000円の出費=3

このとき上でつくった公開鍵が必要になるのでそれつかってください。
なんでかというと、それでジオトラストが公開鍵を作り直します。
※たぶんね。

ジオトラストから中間証明書とサーバー証明が届く。
※中間証明書が届かない場合は、ジオトラストのサイトに置いてあるのもらいに行こう。
もし見つからないという悲しい事件が発生した時のためにリンク
ジオトラスト中間証明書ダウンロード
————————————————————————–
/etc/pki/tls/certs/2011crt.pem ←サーバ証明書ファイル(公開鍵)
/etc/pki/tls/certs/2011ca.pem ←中間CA証明書ファイル
/etc/pki/tls/private/2011key.pem ←秘密鍵ファイル

—————————————————————————
という具合に配置して見る。

ssl.confを修正する。
さくらだとこのあたり?
※/etc/httpd/conf.d/ssl.conf
sudo vim /etc/httpd/conf.d/ssl.conf
——————
SSLCertificateFile /etc/pki/tls/certs/2011crt.pem
SSLCertificateKeyFile /etc/pki/tls/private/2011key.pem
SSLCACertificateFile /etc/pki/tls/certs/2011ca.pem

——————
という具合に設定を【変更】してみる。

アパッチ再起動
※Linux および System V 系
/etc/rc.d/init.d/httpd restart

これで無事再起動できれば、いよいよhttpsでアクセスしてください。
証明書が無事インストールされていれば問題なく開けると思います。
※携帯とか結構うつらない事あるんで、そういう場合はいい証明書買いましょう。(ベリサインとかw)

よかれと思ったらtwitterにでも書き込んでくださいwww
何かあればコメントくださぁい

+ ( ・ω・ )*。+゚

※追記
AUで使えないケースが多発したので、ベリサインを導入しなおしました。
ベリサインもめんどくさい書類提出以外は作り方一緒でーす。
しかし、オペレーターの機械的なしゃべりかたが怖かったなぁ・・・。

cakephpゴマ知識 auのSSL通信時の文字化けを回避する!

UTF-8のケータイサイトをつくってたら、SSLページでAUだけ文字化けする!

AUはSSLページでSjis以外は使えないらしくその対応を迫られた。
※アホス過ぎ!

SSLページかつAUのときだけSjis-winに変換することで対応ができた。

app_controller.phpを一部抜粋

public function afterFilter() {
	if (isset($_SERVER['HTTPS'])) { //SSLか判定
		if ($this->ezweb()) {    //AUか判定
			$outBuffer = ob_get_clean();
			$outBuffer = mb_convert_encoding($outBuffer, "sjis-win", "UTF-8");
			mb_http_output("sjis-win");
			ob_start("mb_output_handler");
			echo $outBuffer;
		}
	}
}

・出力バッファを取得し、UTF8からSjis-winに変換
・出力エンコードをSjis-winに設定
・バッファを出力して完了

っという具合。(即興コードなんであしからずw)

エンコード内容は各環境に切り替えればどこでも対応できると思います。
PHPでも利用できるんで、ちょっと改造してつかってみてください。

追記

※beforeRenderではなく、afterRenderじゃないとsessionがきれちゃいました><:

修正

すみません、めちゃめちゃインチキ書いてました!
app_controller.php 抜粋

public function afterFilter() {
	parent::afterFilter();
	if (isset($_SERVER['HTTPS'])) { //SSLか確認
		if ($this->auMobile()) { //AUか確認
			$this->output = mb_convert_encoding($this->output, ‘SJIS-win’, ‘UTF-8′);
			header(“Content-Type: text/html;charset=sjis-win”);
		}
	}
}
                     -

cakephpは$this->outputをエンコードして、ヘッダーをエンコードに合わせて設定すればオッケーです。
いやはや、Auのせいで大変ですわ><;