Rubyでpemテキストで配布された証明書を使ってhttpsアクセスする簡単な方法


秘密鍵と公開鍵のファイルを作ってそのファイルを読み込ませるTIPSとかは結構あるけど、
pemでテキストとして提供された両者を環境変数などで設定して接続する簡単な(かつPaasとかでは扱いやすい)やり方が意外と検索でHITしなかったのでメモ。
(注意:Rubyは超初心者です)

pem.rb
# The following text should be stored in environmental variables!
pem = <<'PEM'
-----BEGIN RSA PRIVATE KEY-----
YOUR PRIVATE KEY
-----END RSA PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
YOUR PUBLIC KEY
-----END CERTIFICATE-----
PEM

https = Net::HTTP.new('YOUR_DOMAIN', 443)
https.use_ssl = true
https.verify_mode = OpenSSL::SSL::VERIFY_PEER
key = OpenSSL::PKey::RSA.new(pem) # private key 
cert = OpenSSL::X509::Certificate.new(pem) # public key
https.key = key
https.cert = cert

# Your https access
res = https.post('/homge/add', 'id=1&....')

よくのってるのは、certファイルのパスを指定したり、
p12形式にエンクリプトしてとかだけど、単純に
テキスト形式で配布されている鍵は、そのまま使ったほうが
簡単かと思います。
(Herokuにのせる場合は、sslアドオンとかつかわず、heroku configで
環境変数にいれればOK)