工作好きな情報系の雑記

[Mac]https化したサイトでXML-RPCを使うために、プライベート認証局でSSLクライアント証明書を発行する

Google+の投稿を自動でWordPressに投稿するスクリプトが動かなくなってしまった。

サイトがSSL化している場合、XML-RPCを使うにはクライアントもSSLに対応していないといけない場合があるらしい。
そのためには、プライベート認証局でSSLクライアント証明書を発行しなければならない。
ここのサイト曰く、クエリを投げるにはクライアントの証明書とクライアントの秘密鍵とそのパスフレーズ、CAの公開鍵証明書が必要らしいので、そいつらを生成する。

ちなみにこの時の環境は以下の通り。

プライベート認証局(CA)の構築

openssl.cnfの準備

うちの環境では、/private/etc/ssl/openssl.cnfがデフォルトで使用される設定になっていたので、ここを書き換えた。
後述するが、適当なところにopenssl.cnfを作ってそれを使う方法もある。
当時はその方法がわからなかったのでデフォルトのものを書き換えた。

中身は以下のようにしてくれればとりあえず動くと思う。

構築

まず、/System/Library/OpenSSL/misc/CA.shを適当なところにコピーする。
ホームフォルダとかがいいかな。

そしてそのディレクトリで以下のコマンドを入力する。

ちなみに、以下のようにコマンドを打つとopenssl.confの場所を指定できる。

これで以下の二つのファイルができているはずだ(他にも色々生成されている)。

クライアント用の証明書発行

クライアントの証明書作成

以下のようにコマンドを叩く。
もちろんSSLEAY_CONFIGで任意の場所のopenssl.confを使っていい。

これで以下のファイルが生成されているはずだ。

署名入りのクライアントの証明書作成

以下のコマンドを入力。

これで以下のファイルが生成されているはずだ。

クエリを投げる

PHPの場合、以下のようになる。

これで無事また自動投稿できるようになった。
めでたしめでたし。

業務でSSLや証明書が絡む開発してると、SSL通信できる環境がほしくなるケースに出くわすことがあります。通常だと、シマンテックやサイバートラストなどの証明書サービスを利用しますが、なにかと面倒だったりします。そんな時、MacのAp...
Macで簡単♪プライベート認証局でSSLクライアント証明書認証の環境構築 - Qiita - Qiita
こんにちは、cloudpack の 橋本です。■はじめに▽目的クライアント証明書でアクセス制限!概要 サーバーやクライアント認証の証明書を発行するため、プライベートCAを構築 作成したクラ...
プライベート認証局(CA)にてクライアント証明書の発行 | cloudpack.media - cloudpack.media
モバイルバージョンを終了