SSL を使ったお問い合わせフォームでも、フォームに入力された内容をメールで送信してしまえば、平文でネットワークを流れてしまいます。
しかし、S/MIME という方法を使えば、クライアントのメールソフトで復号化するので安心です。
証明書を作成する ———————————————————————-
証明書を作成するには次のような方法があり、どちらも無料で利用できます。
– OpenSSL を使う。 – Instant SSL など無料の証明書発行サービスを使う。
PHP で暗号化して送信する ———————————————————————-
送信側は、[ openssl_pkcs7_encrypt ] という PHP 関数を使って S/MIME メッセージを暗号化して送信する。 暗号化には、[ *.cer ] という拡張子で、テキスト形式の公開鍵を使います。
公開鍵で暗号化して、秘密鍵で復号化します。
拡張子とファイルの種類 ———————————————————————-
- .cer
- X.509 証明書 + 公開鍵
- .crt
- X.509 証明書 + 公開鍵
- 公開鍵をテキスト ( PEM ) 形式に変換したもの
- .p7b ( PKCS#7 )
- X.509 証明書 + 公開鍵
- .p12 .pfx ( PKCS#12 )
- X.509 証明書 + 公開鍵 + 秘密鍵
- .p7b と秘密鍵を結合したものが .p12 になる。
- .pem
- 解凍するための秘密鍵
ファイルの変換方法 ———————————————————————-
.p12 から .cer への変換は、次のコマンドで行えます。
openssl pkcs12 -in hoge.p12 -clcerts -nokeys -out fuga.cer
.p7b から .cer への変換は、次のページが参考になります。
–
Thunderbird へ *.p12 証明書をインポートする ———————————————————————-
受信側は、Outlook Express などの一般的なメーラーで復号化できます。 今回は、Thunderbird 15.0.1 を使いました。
▲ メニューから、[ ツール ] → [ オプション ] → [ 証明書 ] → [ 証明書を表示 ] をクリック。
▲ [ あなたの証明書 ] タブで [ インポート ] をクリックし、拡張子が [ *.p12 ] か [ *.pfx ] のファイルを選択。
▲ パスワードを入力。
▲ 証明書と秘密鍵の復元完了。
Thunderbird へ *.pem 証明書をインポートする ———————————————————————-
上記のタブ画面の時、[ 認証局証明書 ] タブで [ インポート ] をクリックし、拡張子が [ *.pem ] のファイルを選択。
参考にさせてもらったページ ———————————————————————-
– S/MIME の電子メール暗号化/署名の環境を作る (Thunderbird と iOS Mail) – Haya’s Note – S/MIME で メールを暗号化 する « INSANEWORKS,LLC – S/MIME(Secure MIME)で電子メールを交換する個人証明書作成を試す – SSL/TLS 証明書FAQ – OpenSSL使用例 Thunderbirdの暗号と署名
ありがとうございます。