我正在开发用于发送推送通知的服务,但我无法判断上传的apns证书p12是来自沙箱还是生产。我想测试一下,以避免在上传证书时出现人为错误。
答案 0 :(得分:1)
颁发的证书的通用名称告诉您它是来自沙箱还是生产。
制作示例: Apple Production IOS推送服务:your.app.identifier
我的红宝石技能有点生疏但是应该这样做:
require 'openssl'
raw_cert = OpenSSL::PKCS12.new(File.read(path_to_your_cert), your_pwd) # If you want to read a .p12 cert
cert = OpenSSL::X509::Certificate.new(raw_cert)
cert.subject.start_with?("Apple Production IOS")
另见:http://ruby-doc.org/stdlib-2.0.0/libdoc/openssl/rdoc/OpenSSL/X509/Certificate.html
答案 1 :(得分:1)
我对muenzpraeger建议的代码做了一些更改。
require 'openssl'
# If you want to read a .p12 cert
raw_cert = OpenSSL::PKCS12.new(File.read(path_to_your_cert), your_pwd)
OpenSSL::X509::Certificate.new(raw_cert).subject.to_s.include? "Apple Production"