3

私の本番アプリは ActiveMerchant を使用しており、Moneris という単一のゲートウェイで https 経由でクレジット カードを処理できません。他のすべてのゲートウェイ (Authorize.net、Paypal、Beanstream など) ではエラーは発生しません。私が受け取るエラーは次のとおりです。

OpenSSL::SSL::SSLError (SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed):

Moneris の人々は、SSL 証明書を (現在の 1024 SSL 暗号化から) 2048 ビット SSL 暗号化に更新し、アップグレードされた証明書は VeriSign によって発行されると私に話しました。当社のワイルドカード SSL は 2432 を使用します。Moneris の 2047 要件よりも多くなっています。

そのため、SSL バンドル用に通常アップロードするファイルに加えて、Verisign 証明書を追加する必要があると彼らは提案しました。私の Heroku コマンドは次のようになります。

$ heroku certs:upgrade --app myapp AddTrustExternalCARoot.crt ComodoUTNSGCCA.crt EssentialSSLCA_2.crt STAR_myapp_com.crt UTNAddTrustSGCCA.crt Verisign_chain_Gr.cer Verisign_G5.cer server.key

私は、Herokuの /usr/lib/ssl/certs ディレクトリから ca-certificates.crt を呼び出すfix_ssl.rb の提案 ( Heroku の OpenSSL::SSL::SSLError )を含む事実上すべてを試しました。

require 'open-uri'
require 'net/https'

module Net
  class HTTP
    alias_method :original_use_ssl=, :use_ssl=
    def use_ssl=(flag)
      self.ca_path = Rails.root.join('/usr/lib/ssl/certs/ca-certificates.crt').to_s
      self.verify_mode = OpenSSL::SSL::VERIFY_PEER
      self.original_use_ssl = flag
    end
  end
end

Heroku バンドルを /lib ディレクトリに配置する、「認定された」gem を追加するなど、あらゆることを試しましたが、Moneris との電話で何時間も費やしましたが、役に立ちませんでした。この1つのゲートウェイでクレジットカードを処理できるようにするために、さらに何ができるか知っている人はいますか?

4

1 に答える 1