Tôi đang gặp sự cố với chứng chỉ được tạo mà tôi đang sử dụng để kết nối với các dịch vụ đẩy táo. Tất cả hoạt động tốt khi file p12 tạo ra là trong src chính thư mục của tôi// java, nhưng tôi chuyển nó đến src/main/nguồn lực và nó quyết định ngừng làm việc với các lỗi sau:chứng chỉ được tạo ngừng hoạt động khi được chuyển đến thư mục tài nguyên
DerInputStream.getLength(): lengthTag=111, too big.
Để có được thành một số chi tiết hơn: Tôi đang sử dụng thư viện thông báo đẩy notnoop và làm theo hướng dẫn từ Ray Wenderlich để tạo chứng chỉ. sau đó, tôi đã sử dụng lệnh sau để tạo tệp p12 để sử dụng trong java:
openssl x509 -in aps_development.cer -inform DER -out aps_development.pem -outform PEM
openssl pkcs12 -nocerts -in single.p12 -out single.pem
openssl pkcs12 -export -inkey single.pem -in aps_development.pem -out dual.p12
sau đó tôi đã chuyển dual.p12 vào dự án java của mình. Lúc đầu, tập tin nằm trong thư mục/src/main/java của tôi, cho phép đọc số com.company.push.certificates
(trong khi mã yêu cầu tệp là com.company.push
). Tôi yêu cầu một inputstream bằng cách sử dụng
InputStream stream = this.getClass().getResourceAsStream("certificates/dual.p12");
này làm việc tốt trong việc phát triển, nhưng không phải khi xây dựng dự án (sử dụng maven), đó là lý do tại sao tôi chuyển tài nguyên vào thư mục tài nguyên, sử dụng gói chính xác tương tự. Tài nguyên vẫn được tìm thấy, nhưng bây giờ tôi nhận được các số điện thoại được đề cập ở trên java.io.IOException
Bất kỳ ai biết điều gì có thể gây ra điều này?
Ps: khi tôi di chuyển tệp trở lại gói trong src/main/java, tất cả đều hoạt động tốt trở lại, vì vậy chứng chỉ có vẻ hợp lệ.
Tôi cảm thấy như một thằng ngốc tôi không tự kiểm tra điều này ... Điều này có vẻ là vấn đề. Ít nhất là trong một số loại. Trong khi phát triển tôi sử dụng một cá thể jboss cục bộ, tôi đã kiểm tra tệp trong thư mục triển khai, có vẻ như một cái gì đó thực sự đã gây rối với tệp.Nó dường như thậm chí có một mã hóa khác nhau (UTF-8), vì vậy tôi giả sử nó được coi là một tập tin văn bản thay vì một tập tin nhị phân. Làm thế nào tôi có thể ngăn chặn điều này? –
Ok, vì lý do nào đó, jboss nghĩ rằng nó sẽ gây rối với các tệp .p12, bất kể nội dung. Đổi tên tệp thành * .p12.cert có vẻ đủ để 'sửa' nó, không làm tôi rất vui khi: ( –