作業に役立った情報とか、ちょっとした日常を書いておくブログ。>[Mac]https化したサイトでXML-RPCを使うために、プライベート認証局でSSLクライアント証明書を発行する2018/08/04Google+の投稿を自動でWordPressに投稿するスクリプトが動かなくなってしまった。サイトがSSL化している場合、XML-RPCを使うにはクライアントもSSLに対応していないといけない場合があるらしい。そのためには、プライベート認証局でSSLクライアント証明書を発行しなければならない。ここのサイト曰く、クエリを投げるにはクライアントの証明書とクライアントの秘密鍵とそのパスフレーズ、CAの公開鍵証明書が必要らしいので、そいつらを生成する。ちなみにこの時の環境は以下の通り。署名入りのクライアントの証明書作成クエリを投げるプライベート認証局(CA)の構築openssl.cnfの準備うちの環境では、/private/etc/ssl/openssl.cnfがデフォルトで使用される設定になっていたので、ここを書き換えた。後述するが、適当なところにopenssl.cnfを作ってそれを使う方法もある。当時はその方法がわからなかったのでデフォルトのものを書き換えた。中身は以下のようにしてくれればとりあえず動くと思う。certificate.proxyCertInfo=critical,language:id-ppl-anyLanguage,pathlen:3,policy:foo構築まず、/System/Library/OpenSSL/misc/CA.shを適当なところにコピーする。ホームフォルダとかがいいかな。そのディレクトリで以下のコマンドを入力する。好きなパスフレーズ(英数字)を入力。好きなパスフレーズ(英数字)を入力。Updatedちなみに、以下のようにコマンドを打つとopenssl.confの場所を指定できる。-newcaこれで以下の二つのファイルができているはずだ(他にも色々生成されている)。以下のようにコマンドを叩く。SSLEAY_CONFIGで任意の場所のopenssl.confを使っていい。好きなパスフレーズ(英数字)を入力。好きなパスフレーズ(英数字)を入力。newkey.pemこれで以下のファイルが生成されているはずだ。以下のコマンドを入力。newcert.pemこれで以下のファイルが生成されているはずだ。newcert.pem(CAの署名が入った)クライアントの証明書クエリを投げるPHPの場合、以下のようになる。ドメイン名(commonNameと同じものを指定。ドメイン名(commonNameと同じものを指定。クエリの中身);これで無事また自動投稿できるようになった。Qiita業務でSSLや証明書が絡む開発してると、SSL通信できる環境がほしくなるケースに出くわすことがあります。コメントをキャンセルメールアドレスは公開されませんのでご安心ください。付いている欄は必須項目となりますので、必ずご記入をお願いします。コメント内容に問題なければ、下記の「コメント送信」ボタンを押してください。コメントデータの処理方法の詳細はこちらをご覧ください。