Trong quá trình phát triển ứng dụng khách dịch vụ web Java, tôi gặp phải một vấn đề. Xác thực cho dịch vụ web đang sử dụng chứng chỉ ứng dụng khách, tên người dùng và mật khẩu. Chứng chỉ ứng dụng khách tôi nhận được từ công ty đằng sau dịch vụ web có .cer
định dạng. Khi tôi kiểm tra tệp bằng trình soạn thảo văn bản, nó có các nội dung sau:
-----BEGIN CERTIFICATE-----
[Some base64 encoded data]
-----END CERTIFICATE-----
Tôi có thể nhập tệp này dưới dạng chứng chỉ trong Internet Explorer (mà không phải nhập mật khẩu!) Và sử dụng tệp đó để xác thực với dịch vụ web.
Tôi đã có thể nhập chứng chỉ này vào kho lưu trữ khóa bằng cách tước dòng đầu tiên và dòng cuối cùng, chuyển đổi sang dòng mới unix và chạy giải mã cơ sở64. Tệp kết quả có thể được nhập vào kho khóa (sử dụng keytool
lệnh). Khi tôi liệt kê các mục trong kho khóa, mục này thuộc loại trustedCertEntry
. Do loại mục nhập này (?), Tôi không thể sử dụng chứng chỉ này để xác thực với dịch vụ web. Tôi bắt đầu nghĩ rằng chứng chỉ được cung cấp là chứng chỉ công cộng đang được sử dụng để xác thực ...
Một cách giải quyết mà tôi đã tìm thấy là nhập chứng chỉ trong IE và xuất nó dưới dạng .pfx
tệp. Tập tin này có thể được tải dưới dạng kho khóa và có thể được sử dụng để xác thực với dịch vụ web. Tuy nhiên tôi không thể mong đợi khách hàng của mình thực hiện các bước này mỗi khi họ nhận được chứng chỉ mới. Vì vậy, tôi muốn tải .cer
tệp trực tiếp vào Java. Có suy nghĩ gì không?
Thông tin bổ sung: công ty đằng sau dịch vụ web nói với tôi rằng nên yêu cầu chứng chỉ (sử dụng IE & trang web) từ PC và người dùng sẽ nhập chứng chỉ sau.