日: 2011年5月7日

『OpenCart』にSSLを導入する

それで、っと。(何が?とかキビシク突っ込んであげてください;)

SSL入れていきます。

自分で書いてたルート証明とかの情報がちょっと古くなっているので、再検索。
携帯対応ということも考慮にいれて、変わらず、
「Equifax Secure Certificate Authority」ルートの入っているSSL証明を探す。

で上がった候補が、
・QUICKSSLpremium
・rapidSSL
・alphaSSL
この3つのどれか。

どれもリーズナブルだけど、欲しいスペックに不満なし。
でも、できるだけ安いほうがいいから、やっぱり海外で再販業者を探す。
(日本のサイトで申しこめば、タブン結構丁寧な導入解説とかあるはずなので、参照してください。)

http://www.namecheap.com/ssl-certificates/geotrust-ssl-certificates.aspx
↑ここから、rapidSSLを購入することにします。
rapidSSLは、最近ルート証明が「Equifax Secure Certificate Authority」に変わったので、携帯の対応範囲が格段に広がったので、いいんじゃないかなと思う。
私は先にドメインを取ってしまったんだけど、このサイトから、ドメインを取ると1年のSSL証明が2ドルとか3ドルみたいな激安でオプション追加できたりする。バリュー。。。

全体的な流れ

<SSL証明書を買って支払う> → <CSRキーを生成してSSL証明機関へ送る> → <SSL証明機関から発行された証明書とサーバのプライベートキーなど合計4つのキーファイルをサーバにインストールする>

レンタルサーバサービス側でCSRキーを発行する

レンタルサーバの管理画面から、SSLのメニューを探し、CSRキーとプライベートキーを発行する。
画面内からコピーペーストできる場合もあるし、メールで送られてくる場合もある・
この手順は、手順自体が、レンタルサーバのサービス業者によって色々。メールで先方に依頼する場合もある。
※取得するSSLのドメインは、サブドメインまで含めて。www.○○○.comという形で。

SSL証明買って、、、CSRの送信

1)SSL証明書買います。

上記、私の購入した先は、英語ですけど難しくはないので、ユーザー登録、注文して決済してください。ユーザ登録したメアドに、確認メールが届く。

SSL証明会社へCSRを送信する

届いたメールの中のSSL Certificates: というタイトルの文を参照しながら、「SSL listing page」というリンクをクリック。
サービスの管理画面に入る。
購入したSSL証明が一覧になっているので、その中から使用するSSLの「Activate Now」リンクをクリック。今回は1つ購入しただけなので迷うことはない;
(※アクティベートして利用を開始した日から1年有効となる)
必要な内容を入力していく。
※webmaster@ドメイン、root@ドメイン、admin@ドメイン、postmaster@ドメインなど管理者用の特定のメールアドレスが必要になるので、先にレンタルサーバの管理画面の方で、メアドを作成しておいて下さい。この場で画面を見て作成しても構いません。

先ほどレンタルサーバ会社で発行したCSR(証明書のリクエストキー)を
「—–BEGIN CERTIFICATE REQUEST—–」から
「—–END CERTIFICATE REQUEST—–」まで全て含めて送信する。

サイトの管理者によるリクエストの承認を行う

完了したら、ここで登録した、先程の、webmaster@ドメイン、root@ドメイン、admin@ドメイン、postmaster@ドメインなど管理者用のメールアドレス宛に、SSL証明書を発行してもよいか問い合わせる承認依頼メールが届く。

その確認メール内の、
(申込者の名前) requests that you come to the URL below to review and approve this certificate request:
***リンク***
このリンク部分をクリックして、確認画面へ行き、内容を確認して、SSL証明のリクエストを承認する。

今度は、申込者のメールアドレスの方に、承認が受け付けられた旨の連絡と、証明書のキー2種類が、CSRと同じテキストの形式で届く。
このSSL照明会社(ジオトラスト)のサービスの場合は、届いたメールの下の方にあるが、メールへのファイル添付で届く場合やSSL証明会社の管理画面からダウンロードしてくる場合もある。

レンタルサーバサービス側で全てのキーを登録する

これで、

レンタルサーバサービス(自サーバ)で発行された
・CSRキー
・プライベートキー

の2つと、

SSL証明会社で発行された
・WEBサーバ証明書
・CAキー

の2つ、合計で4つのキーファイルが揃った。

この4つのキー全てを、WEBサーバに送信すれば、SSLの証明書のインストールは完了。
私の利用しているサービスの場合は、レンタルサーバの管理画面で、4つのキーをそれぞれ登録するフォームがあり、そこへコピペすれば、SSLが使えるようになる。このステップも、4つをテキストファイルにして、レンタルサーバ会社へメールで送る場合やFTPなどで特定の場所へアップロードして、連絡する場合など、色々。

OPENCARTでSSL設定

OPENCARTの管理画面でSSLを有効にする

OPENCARTの管理画面へログイン。
「システム」タブ→「設定」をクリックして、設定メニュー内の、「サーバー」設定タブ内のメニューから、1つ目の、「SSLを使用する」を「はい」にして、保存。

/admin/config.phpを編集

FTPでアクセスし、
/admin/config.php ファイルをダウンロードしてきて編集する。
8行目、9行目の、

define('HTTPS_SERVER', 'http://○○○com/admin/');
define('HTTPS_IMAGE', 'http://○○○com/image/');

define(‘HTTPS_SERVER’, ‘https://○○○com/admin/’);
define(‘HTTPS_IMAGE’, ‘https://○○○com/image/’);

に変更して、アップロードしなおす。

OPENCARTの管理画面にHTTPS://でアクセス、ログインし直してみて、表示できているか確認。
フロント画面から、買い物してみて、カート画面に移った時に自動的に、HTTPS://のSSL接続になっているか確認。

この時に、SSL証明エラーが出ている場合は、正しく証明書がインストールされていません。
画面が接続エラーで表示できない場合は、サーバがSSL対応に変更されていないということです。

以上です。

『OpenCart』にSSLを導入する、、、前にSSLについてもごもご言っとく。

ネットショップに必要なSSL。クレジットカードとかフォームに入力した個人情報とかを安全に暗号化して送る、あのシステムですね。
SSLについては、前にも書いたことあるけれど、年月も経ってるので、取り敢えず、OPENCARTへの導入方法とちょい説くらい書いときます。

SSLは、基本的には、普通にWEBサービスをやってるサーバであれば、導入できます。
というのは、これは暗号化技術なので、例えウチのヘボサーバであっても、SSLの設定をすれば、暗号化された情報の送受信が可能だからです。

で、巷で、SSL、SSL買わなきゃ、とワイワイ言うのは、要は、「SSLの証明書」を買うということ。
簡単に言うと、自分のサイトで、SSL暗号化技術が使用されており安心ですよ、ということを、第三機関から、証明してもらう、ということなんですね。

で、どういう事をするかというと。

自分のWEBサイトを公開しているサーバ内に、SSL技術を設定して、(証明機関への)リクエストキーを発行する

リクエスト機関では、SSL暗号化が出来ているかをチェックして、承認キーを発行してくれる

承認を受けたキーを自分のサーバに証明書として入れて、○○機関からチェックと承認を受けましたよ、という証明のマークなどをもらう

こんな感じ。

で、有名なベリサインとか高価なSSL証明は、サーバにSSL技術が導入されているかだけじゃなく、そのWEBサイトを運営している会社や個人が実在している信頼できるところかとか、そういう事まで含めてチェックして証明書を出していたり、SSLの中でも高度な暗号化セキュリティにまで対応してたり、はたまた、もし暗号化されているはずの情報がどこかのハッカーなんかによって漏れてしまった時に、その顧客と会社の損失を保険として保証してくれる金額が大きかったり、というようなところで、サービスや金額に差があるわけです。

ざっくり言うと、SSL自体はどこも基本技術は同じで、それに付いてくる付加サービスや承認の手間などで、証明書を発行する価格が違う、ということですね。

なので、プロとしては、信頼度や色んなリスクのことを考えて、お客様にご提案させていただくのは、まずは、ベリサインです、はい。ブランドですから。業界スタンダードですから。他とはやっぱり違います。

えー、じゃあ、安いのでいいじゃん!

とか、思った、アナタ。。。

正しい!(ある意味)

ただし、ちょっと面倒な話だけど、SSLの証明は、一般ユーザ(つまり買い物してくれるお客さん)のパソコンのブラウザに、今度は、その証明を発行する機関をチェックするキーファイルが予めインストールされていて、そのキーと照合して、ちゃんとしたところが証明したSSLの証明書かどうかチェックする仕様になっています。
だって、怪しい機関が勝手に証明したって意味ないですからね。
SSL証明そのももは、自分で発行することもできますからね。(いわゆるオレオレ証明っていうやつです;)

そこで、ベリサインやブランドのある証明機関であれば、SSL証明のチェックキーが、多くの種類のブラウザや携帯電話端末などにプリインストールされているけど、有名でないところや小さい安いところは、対応される端末やソフトが少なくて、WEBページを開いたときに、安全性の証明のないページです!みたいな警告がでて、あっさり接続表示できなかったり、してしまいます。
見たことありますよね?そういうセキュリティの警告画面。あれ、ビビリますよね???

なんで、節約はいいですが、ケチケチせずに、対応範囲の広い証明を持っているSSL証明書を選んで購入しましょう~♪

選択のポイントは、
・SSL証明の大元になる「ルート証明」というものが、対応しているソフトや端末が多い
・そのなかでも、特に2~5年前くらいまでの人気機種の携帯や現在の最新機種、スマートフォンなどに対応している
というようなところです。
この辺もベリサインであれば、およそクリアしています。
後セコムなんかも結構対応範囲広いですね。

あとは、予算と、自分が対応させたい範囲(一般的なPCブラウザだけでいいのか、AUは必要かドコモは必要か、ソフトバンクは必要か、どれくらいの機種まで必要かなど)に照らし合わせて、採用するものを選択、これでOKです。

んじゃあ、とりあえず、今回は、独自のSSL証明書を、OPENCARTで作ったショップのドメインに対して導入するので、メジャーな携帯端末とスマートフォンに対応してくれて、比較的リーズナブルで、というようなところで、探して。
購入してインストールしていきます。
会社によって、設定画面とか手順がちょっとずつ違うけど、およそやることは一緒なんで、良かったら、参考にしてくださいね。

じゃあ、次のエントリーで。(あ、後、昔のエントリーにももう少し詳しくSSLについて書いてます)

日本のショップでPAYPALを使いたがらないのはなぜだろう?

 PAYPALって良いサービスだと思うんだけど。

仕事でECショップの構築をすると、大抵は、ルミーズとかネットプロテクションズの決済サービスを入れる。
そして、SSLは、ベリサインだ。(SSLについては、別にこれでいいと思っている。)

PAYPAL入れます?って聞くと、あんまり日本で使用してるところがないから、とか、セキュリティが心配、とか、言われるんだけど、、、
PAYPALのセキュリティってしっかりしてますよ。
ま~、なんというか、毒吐くと、訳の解らんショップが、セキュリティの何たるかもわからず、顧客の個人情報を会社内で、垂れ流してることなんかよくあるわけで。というより、ほとんどの会社って、そういうもんよ、うん。

ネットショップでは、PCを1,2台共有して管理してるとか、アルバイトやパートが管理してるとか、そう言うの、多いですよね。顧客情報が入ってる受注管理PCは別にしてて、決まった担当者だけが利用出来るように、別室で管理してて、とか、そんなセキュリティしてるところ、一般ショップで見たことない。(瀑)

これだけネットショッピングが一般的になってきたら、もう少し、ショップ側のセキュリティ管理とか責任とか、そういうのもしっかりして欲しいと思うけど、ま~そういう教育しても、開発側はお金になんないもんね。。。
だから、面倒を避けるために、せめてクレジット情報とかだけでも業者任せにしたいわ、っていうところもあるかも。
その業界でメシ食ってる(という表現がいいのか!?)人もそれなりにぎょうさんいてますし。

でも、ルミーズとか導入コミッションの大きい(=顧客からすれば初期設定費とかトランザクションフィートか色々かかるってことなんですけどね;)ところは、ECサービスの開発元も提携するのに積極的。儲かるから。
それに、細かい設定とか部分開発なんかもやってもらえるから、こういうセキュリティの絡むややこしいところは、本当にセンシティブなところなんで助かるんだよね。

でも、顧客側からすると、PAYPALって、費用負担も少ないし、世界中で利用できるし、結構リーズナブルで便利なんですよ。
登録面倒?
しれてますよ、そんな手間。
ま~。コンビニ決済はないけどね・・・(笑)

『OpenCart』にPAYPALの支払い設定をする

支払いオプションとしては、今後日本国内でも増えていくと思われるPAYPALの支払い設定をします。
簡単にメリットを言うと、、、早く決済できて、顧客・ショップともに負担が少ない、ということでしょうか。

PAYPALを利用するメリット

PAYPALは、クレジットカードなどの支払いが可能なグローバル決済サービスで、決済は暗号化されたPAYPALのWEB処理バックグラウンドで行われますので、ショップ側では、クレジットカードなどの個人情報を扱う必要がなく、顧客・ショップともに安心。

また、国際取引の場合でも、国際間の銀行振込や他のクレジット決済サービスに比べ、処理手数料が安く小規模のショップや個人でも利用しやすい。(クレジット決済を利用しても、月次のアカウント維持費やトランザクション手数料、初期設定費などが不要。売上の有ったときのみ、決済手数料として、3.5~5%程度の費用が掛かるのみ)

決済から口座への入金まで最大2ヶ月、3ヶ月と掛かってしまう国内の他サービスに比べても、決済された代金への口座入金速度が早い。

では、PAYPAL側の設定から始めます。

PAYPAL決済を利用するための前準備

前提として、PAYPALのWEBサイトでアカウントを開設し、認証しておいてください。
認証は、利用者が正しいユーザである事を確認するために、登録したクレジットカードへPAYPALから一旦200円の課金をすることで承認をします。支払った200円は、後日返金されますので、画面の案内に従って、返金手続きをしてください。(多分メールでも案内来たと思う・・・)
新規で登録するなら、メールアドレスは、ショップで利用するものにしておくといいと思います。

さて、では。
今回設定する範囲は、ショップ(OPENCART)で、顧客がPAYPAL支払いを選んだ場合に、PAYPAL経由で支払いを済ませ、完了後、ショップのWEBサイトに自動的に戻ってくる、というところまでです。
では、設定します。

PAYPALのWEBサイトへログインして設定準備を済ませる

  1. 先にPAYPALの画面にログインして、上部のメインメニュータブから「マイアカウント」→「個人設定」をクリック。
  2. 左のサブメニューで「販売ツール」をクリック。「オンライン販売」の項目の中の「ウェブサイトの設定」で右側の「更新」リンクをクリックして設定画面に進みます。
  3. OpenCartのWEBサイトのドキュメンテーションに説明してあるように、下記の通り設定項目を編集していく。

    ・ウェブ ペイメントの自動復帰 →オン、復帰URLに自ショップのURL(http://www.○○○.com)を入力
    ・支払いデータ転送(オプション)→オン(※後でIDトークンが発行されます)
    ・暗号化ウェブ ペイメント →オフ
    ・PayPal アカウント オプション サービス →オン
    ・連絡先電話番号 →オン(オプションフィールド)
    ・エクスプレス チェックアウトの設定 →いいえ
    上記完了したら、「保存」ボタンをクリック。オプション項目を変えたい場合は、適宜ご自身の希望にあうものへどうぞ。
  4. 1つ前の画面から(=2.の画面:「マイアカウント」→「個人設定」左のサブメニューで「販売ツール」をクリック。)今度は2つ目のメニューグループ「支払いとリスク管理」の「即時支払い通知」の右の「更新」リンクをクリック。
    [即時支払い通知(IPN)]の画面になりますので、「設定を編集」ボタンをクリック。
    ・通知url →自ショップのURL(http://www.○○○.com)
    ・IPNメッセージ →IPNメッセージを受信する(有効)
    として、保存します。以上です。
  5. ※「ウェブサイトの設定」で発行されたIDトークンは確認できたら、どこかにメモするかテキストファイルなどにコピーして一時保存しておきます。後でOPENCART側の設定で使用します。
  6. 最後に一応言語設定をします。同じく1つ前の画面から(=2.の画面:「マイアカウント」→「個人設定」左のサブメニューで「販売ツール」をクリック。)一番下の方の「その他の販売ツール」から「PayPalボタンの言語コード化」リンクをクリック。「詳細オプション」ボタンをクリック。エンコードをUTF-8に変更して保存します。

OPENCARTの管理画面へログインしてPAYPAL支払いの設定をする

  1. 管理画面にログインして、上部のメインメニューから「拡張機能」→「支払い設定」画面へ。「Paypalスタンダード」(真ん中くらい)の「インストール」リンクをクリック。「変更」というリンクが追加されるので、クリックして編集画面へ。
    ※「PayPal Website Payment Pro」はアメリカのサービス、「PayPal Website Payment Pro (UK)」はイギリスのサービスなので、日本では、「Paypalスタンダード」を選びます。
  2. 各項目の設定をします。

    ・Eメール: →PAYPALに登録のメールを入力(支払いの認証に使われます)
    ・PDT Token: →PAYPALで発行されたトークンIDを入力
    ・Sandbox モード(テストモード): →いいえ
    ・トランザクション(承認と回収): →AuthorizationまたはSaleを任意に選択。
    ・ゲオゾーン: →PAYPAL支払いを使用する地域を選択。特に限定する場合は、ジオゾーンの編集(システムまニュー内)からPAYPAL支払い用地域を作成しておきます
    ・ステータス: →有効
    ・表示順位: →任意の支払い方法選択画面での表示順番
    ・Debug Mode: →テスト時にはエラー原因がわかるので有効にする。実運用時には無効でも構わない
    ・取引ステータス(Completed): →処理完了
    ・取引ステータス(Pending): →未処理
    ・取引ステータス(Denied): →処理を拒否
    ・取引ステータス(Failed): →処理失敗
    ・取引ステータス(Refunded): →返金処理中
    ・取引ステータス(Canceled Reversal): →キャンセル取り消し
    ・取引ステータス(Reversed): →逆処理
    ・取引ステータス(Unspecified Error): →処理失敗
    ※通常の処理を選択しています。自分が特に違う処理をさせたい場合は、任意で設定を変更してください。
    保存して終了。

※PAYPALのトランザクション処理のステータス項目の説明を見たい場合は、こちらのサイトで確認できます。(英語です)
https://www.paypalobjects.com/en_US/vhelp/paypalmanager_help/transaction_type_codes.htm

OPENCARTからPAYPAL支払いができるかテストする

PAYPALのサイトでサンドボックス(テスト環境)の準備をする

こちらのPAYPALサンドボックスの利用方法を見ながら、作業します。
https://www.paypal-japan.com/business/sandbox.html

  1. PAYPALのサンドボックスサイト(http://developer.paypal.com/)へアクセスし、テストアカウントの登録をします。
    ページ中央下の「Sign Up Now」ボタンをクリックし、表示されたフォームに順に入力していきます。
    普通に受信可能なメールアドレスでテスト用のアカウント登録してください。
    ただし、ここはテスト環境です。本番サイトほどしっかりとはセキュリティは守られていないと考えるほうがいいでしょう。
    ですので、セキュリティ上、PAYPALで実際の支払いやビジネスに使用するメアドは利用しないでください
    登録したメルアド宛にPAYPALからアカウント確認メールが届きますので、リンクをクリックしてアカウントの承認を行ってください。
  2. 注文テストを行うには、購入者(=BUYER)用の一般アカウントと販売者(=SELLER)用のビジネスアカウントが必要ですので、そのそれぞれのダミーアカウントを作成します。
    では2つのダミーアカウントを順に登録していきます。
    ページ真ん中より少し上の、「Create a preconfigured buyer or seller account」をクリックします。
  3. 1つめの、SELLERアカウントを作成します。

    ※ダミーですので設定内容は任意で構いません。クレジットカードのトランザクションテストを行うので、カードは何か選んでおきます。また、ここで登録するメールは、ダミーが作成されますので、先ほど登録したサンドボックス用のアカウントで使用したメアドでも構いません。下の「Create Account」ボタンをクリックして保存します。
    ※画像がBUYERになってますが、SELLERを選択してください。間違えても、もうひとつも後で作るので、気にしなくてOKです。
  4. 登録できたら、こんな画面になりますね。作成できたアカウントがリストになっています。(1こだけ)
    ビジネスアカウント(ダミー)が作成できました。
  5. 画面中央右上の「Preconfigured」リンクをクリックします。
    次に表示されるページで、先ほどと同じ要領で、次はパーソナルアカウントを作成します。次のページで表示されるダミーアカウントは、合計2つになりました。
  6. 一覧表の下のオレンジの「Enter Sandbox Test Site」ボタンをクリックして、サンドボックスのテストページを開きます。見慣れたPAYPALの本サイトと同じようなインターフェイスのページが表示されましたでしょうか。まずは、ビジネスダミーアカウントの方でログインしてみてください。

PAYPALのSANDBOXテストサイトでビジネスダミーアカウントの設定をする

  1. 先にPAYPALの本サイトで登録したように、「マイアカウント」→「個人設定」タブへ進み、「販売の設定」メニューグループの中から「ウェブ ペイメントの設定」リンクをクリックします。(本サイトの表示とは少し見栄えが違いますが、機能は同じです。)
  2. 先に本サイトで設定したのと同じように設定し、保存できたら、IDトークンが発行されますので、メモまたはテキスト保存しておきます。

OPENCARTの管理画面でPAYPAL支払いの設定をテスト用に変更する

PAYPALのテストが出来るように、ショップの管理画面で一時的にテスト用の設定に情報を変更しましょう。

  1. OPENCARTの管理画面から先ほど編集した、支払方法設定の「PayPalスタンダード」→「変更」へ進みます。
  2. E-メールアドレスを、PAYPALのテストアカウントで発行したダミーのビジネス用アカウントに、PDT TokenをテストサイトのIDトークンに、変更します。Sandbox モード(テストモード)を「はい」にして、念のため、Debug Modeも「有効」にしておきましょう。保存します。
  3. ※本番用のIDトークンなどは、どこかにテキストデータで保存しておいたほうがいいかもしれません。テストが完了したら、本番のデータに戻しますので。

OPENCARTのショップ画面から実際にテスト購入しPAYPAL決済ができるか試す

いよいよ自分が購入者になって、商品を、PAYPAL決済で買ってみます。

  1. OPENCARTのフロントショップ画面にアクセスし、何かの商品を購入手続きしてみてください。支払いの画面で、白灰方法にPAYPALを選択します。
  2. OPENCARTで入力するEメールは、実際に送受信できるメアドで登録します。
  3. PAYPALの支払画面につながりますので、そこで入力するPAYPALの(テスト)アカウントログインのメアドは、先ほど、テスト用に作成したBUYER用のパーソナルアカウント・メールを入力し、ログインします。
  4. 支払いが完了できたら、OPENCARTの、購入完了ページに表示ページが戻ってくるかまでを確認して下さい。

PAYPALの画面(サンドボックス)で売上が正しく受信処理できているか確認する

最後に、再び、PAYPALのテストサイト(サンドボックス)に戻り、

・SELLERアカウントでログインして、売上が計上されているか、処理は意図したとおりになっているか
・BUYERアカウントでログインし直して、自分が支払った情報が計上されているか

チェックしてください。
追加で利用したいサービス(例えば請求書の発行など)やオプションの設定、オーソライゼーションの処理なども試すことができます。

さらに、サンドボックスのテストアカウント設定画面(テストアカウントを作成した画面)からは、左メニューの「Test Email」メニューで、購買時に、顧客(BUYERアカウント)と店舗(SELLERアカウント)の両方にPAYPALから送信されるそれぞれのメールの内容を確認することもできます。

これで、OPENCARTでPAYPALの支払いが設定できました。
テストが完了したら、公開前に、OPENCART管理画面でテスト用に変更した設定を元の本番用に戻します。
※こういった設定のうちPAYPAL側での設定は、EC-CUBEなどもほぼ共通です。良かったら試してみてください。

PAYPALのサンドボックスでは、その他のAPIなどもテストできますが、今回はここで。