5

Tôi đã thử Thông báo đẩy cho ứng dụng của mình để phát triển và nó hoạt động tốt. Khi tôi tạo ra tập tin sản xuất .p12 (phân phối) nó sẽ được tạo ra. Sau khi deployin .pem tập tin trên máy chủ nó ném và lỗi.Thông báo đẩy iOS không hoạt động để phân phối

OpenSSL :: SSL :: SSLError (SSL_connect trở = 1 errno = 0 state = SSLv3 đọc máy chủ của ession vé A: Giấy chứng nhận cảnh báo SSLv3 chưa biết):"}

Server: RoR (Ruby on Rails) Bất kỳ trợ giúp sẽ rất đáng

Lưu ý:.... Đối với sự phát triển đuôi .p12 nó làm việc tốt vấn đề là khi tôi đang triển khai phân phối đuôi .p12 Xin gợi ý cho những gì tôi có thể bị thiếu

Cảm ơn và kính trọng

Trả lời

3

@Learner

Nếu tất cả các tùy chọn khác không hoạt động thì bạn nên kiểm tra cách xuất tệp p12 của mình. Bạn nên xuất tệp p12 được liên kết với Chứng nhận sản xuất của Apple, tôi hy vọng nó sẽ hoạt động .. vì nó làm việc cho tôi !!!

1

Nếu bạn muốn bỏ qua xác minh, bạn có thể sử dụng điều này.

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 

nguồn: How to get rid of OpenSSL::SSL::SSLError

Nhưng vì chúng ta muốn được an toàn bạn nên sử dụng theo

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

giải pháp thêm tại OmniAuth & Facebook: certificate verify failed

7

việc kiểm tra này trong mã sever của bạn

gateway.push.apple.com, cổng 2195 để phân phối

gateway.sandbox.push.apple.com, cổng 2195

  1. Log-in để các nhà phát triển iPhone Chương trình Portal.
  2. Chọn ID ứng dụng từ menu ở bên phải.
  3. Tạo ID ứng dụng mà không có ký tự đại diện.
  4. Nhấp vào liên kết Định cấu hình bên cạnh ID ứng dụng này và sau đó nhấp vào nút để bắt đầu trình hướng dẫn để tạo Chứng chỉ SSL đẩy phát triển mới. để phát triển (hoặc) để tạo Giấy chứng nhận SSL sản xuất mới để phân phối.
  5. Tải chứng chỉ này và kích đúp vào aps_developer_identity.cer để nhập nó vào Keychain
  6. Launch Keychain Assistant và click vào Giấy chứng nhận của tôi ở bên trái Mở rộng phát triển Apple Push Services và chọn Phát triển của Apple Dịch vụ Đẩy
  7. right nhấp và chọn "Xuất 1 phần tử ..." và lưu dưới dạng apns-cert.p12. VÀ khóa riêng của bạn trong cùng một khu vực mở rộng Nhấp chuột phải và chọn "Xuất 1 thành phần ..." và lưu dưới dạng apns-key.p12.

8.Open Terminal và thay đổi thư mục đến vị trí sử dụng để lưu và chuyển đổi sang đuôi .p12 bó giấy chứng nhận pkcs12 sang định dạng PEM sử dụng lệnh này

i).openssl pkcs12 -clcerts -nokeys -out apns-cert.pem -in apns-cert.p12 ii). openssl pkcs12 -nocerts -out apns-key.pem -in apns-key.p12 ở đây u phải cung cấp cho một số chìa khóa để truy cập vào mã php.

Xóa cụm mật khẩu

iii). openssl rsa -in apns-key.pem -out apns-key-noenc.pem tại đây bạn phải cung cấp cùng một khóa để xóa cụm mật khẩu.

cuối cùng là iv). cat apns-cert.pem apns-key-noenc.pem> apns-dev.pem.

Bây giờ bạn có thể sử dụng tệp PEM này làm chứng chỉ của bạn trong ApnsPHP!

0

Tôi đã giải quyết. Đó là lỗi tệp .p12. Tôi đã không tạo ra .p12 mà tôi đã phải sử dụng.

Cảm ơn !!

0

Tôi đã sử dụng gem 'rpush', tệp này lấy tệp pem từ thư mục chứng chỉ & lưu trữ nó trong cơ sở dữ liệu. Giải pháp của tôi là xóa tất cả các bản ghi Rpush :: Apns :: App cũ khỏi cơ sở dữ liệu và các bản ghi được tái tạo sau khi cập nhật tệp pem trong thư mục thông tin đăng nhập của tôi.

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! 
Các vấn đề liên quan