5

我試過推送通知爲我的應用程序的開發,它工作正常。當我生成生產(分配)的.p12文件時,它正在創建。在服務器上部署.pem文件之後,它會拋出並出錯。iOS推送通知不適用於分配

的OpenSSL :: SSL :: SSLError(所以SSL_connect返回= 1個錯誤號= 0狀態= SSLv3的讀取服務器S 分裂國家車票答:SSLV3警報證書未知):」}

服務器:回報率(紅寶石on Rails的) 任何幫助將是非常可觀的

注意:。對於發展.P12它的正常工作的問題是,當我部署分佈的.p12請有什麼建議可我會丟失

感謝和問候

回答

3

@Learner

如果所有其他選項都沒有,那麼工作,你應該檢查你如何導出您的P12文件。您應該導出與Apple生產證書關聯的p12文件,我希望它能正常工作。

1

如果你想跳過驗證,你可以使用它。

require 'net/http' 
    require 'openssl' 

    class Net::HTTP alias_method :origConnect, :connect 
     def connect 
      @ssl_context.verify_mode = OpenSSL::SSL::VERIFY_NONE 
      origConnect 
     end 
    end 

來源:How to get rid of OpenSSL::SSL::SSLError

但是因爲我們希望是安全的,你應該使用遵循

ENV['SSL_CERT_DIR'] = '/usr/share/ca-certificates/'

更多的解決方案在OmniAuth & Facebook: certificate verify failed

7

檢查這在您的服務器代碼

gateway.push.apple.com,分配

gateway.sandbox.push.apple.com端口2195,端口2195

  1. 登錄-到iPhone開發人員計劃門戶。
  2. 從右側菜單中選擇應用程序ID。
  3. 創建不帶通配符的應用程序ID。
  4. 單擊此App ID旁邊的配置鏈接,然後單擊該按鈕啓動向導以生成新的開發推送SSL證書。 (或)生成新的生產推送SSL證書進行分發。
  5. 下載該證書並雙擊aps_developer_identity.cer將其導入到你的鑰匙串
  6. 啓動鑰匙扣助理,然後點擊我的證書上留下 展開蘋果開發推送服務,並選擇蘋果開發推送服務
  7. 右對齊點擊並選擇「Export 1 elements ...」並保存爲apns-cert.p12。 與您的私鑰放在同一個擴展區域 右鍵單擊並選擇「導出1個元素...」並保存爲apns-key.p12。

8.Open終端和目錄更改爲用於保存的.p12和使用該命令

i)所述PKCS12證書束轉換成PEM格式位置。openssl pkcs12 -clcerts -nokeys -out apns-cert.pem -in apns-cert.p12 ii)。 openssl pkcs12 -nocerts -out apns-key.pem -in apns-key.p12 這裏你必須提供一些進入php代碼的密鑰。

刪除密碼

iii)。 openssl rsa -in apns-key.pem -out apns-key -noenc.pem 這裏你必須爲Remove口令提供相同的密鑰。

終於 iv)。 cat apns-cert.pem apns-key-noenc.pem> apns-dev.pem。

現在您可以在ApnsPHP中使用此PEM文件作爲您的證書!

0

我解決了它。這是一個.p12文件錯誤。我沒有創建我必須使用的.p12。

謝謝!

0

我正在使用gem'rpush',它將憑證文件夾&中的pem文件存儲在數據庫中。我的解決方案是從數據庫中刪除所有舊的Rpush :: Apns :: App記錄,並在更新我的憑證文件夾中的pem文件後重新生成記錄。

app = Rpush::Apns::App.new 
app.name = "ios_app" 
app.certificate = File.read("/path/to/sandbox.pem") 
app.environment = "sandbox" # APNs environment. 
app.password = "certificate password" 
app.connections = 1 
app.save! 

n = Rpush::Apns::Notification.new 
n.app = Rpush::Apns::App.find_by_name("ios_app") 
n.device_token = "..." # 64-character hex string 
n.alert = "hi mom!" 
n.data = { foo: :bar } 
n.save!