Apache - Tạo khóa riêng từ tệp .crt hiện có


7

Tôi có một số trường hợp apache chạy trơn tru với chứng chỉ được tạo tại nhà. Bây giờ tôi phải sử dụng một chứng chỉ được cung cấp, nhưng những gì tôi đã gửi chỉ là một tệp .crt. Trong khi cố gắng sao chép nó vào thư mục thích hợp, nhưng khi tôi cố gắng khởi động lại máy chủ web, nó sẽ ghi lại:

SSL Library Error: 185073780 error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch

Mà tôi nghĩ nó đúng, vì tệp .key là tệp tôi tự tạo. Có cách nào để tạo tệp .key thích hợp từ .crt không?


Giấy chứng nhận được làm từ khóa công khai của bạn. Khóa công khai và khóa riêng hoàn toàn tách biệt (theo định nghĩa) và bạn không thể tạo khóa này từ khóa kia. Tập tin .crt mới này được tạo như thế nào? Chỉ cần một tệp chính và CSR ở đâu đó!
Alexios

1
Có thể là khóa được bao gồm trong tệp. Dòng đầu tiên của tập tin là gì? (Không phải dữ liệu, chỉ là dòng văn bản đầu tiên hy vọng sẽ đưa ra gợi ý về loại tệp đó.)
Jenny D

@Alexios: Tôi không có đầu mối về cách tập tin này được tạo ra :( @JennyD: nếu tôi làm một cách đơn giản cattôi thấy những điều sau đây: -----BEGIN CERTIFICATE----- MIIFCTCCA/mà tôi không nghĩ rằng nó những gì bạn đang đề cập đến.
ludiegu

Chủ đề không có ý nghĩa ngay cả khi khóa riêng được liên kết với crt.

Câu trả lời:


7

Đối với chứng chỉ tự ký của bạn, bạn có thể đã làm một cái gì đó như thế này:

$ openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
       -keyout mysitename.key -out mysitename.crt

Và sau đó tạo các dòng như thế này cho Apache:

<VirtualHost 192.168.0.1:443>
DocumentRoot /var/www/website
ServerName www.domain.com
SSLEngine on
SSLCertificateFile /etc/ssl/crt/primary.crt
SSLCertificateKeyFile /etc/ssl/crt/private.key
SSLCertificateChainFile /etc/ssl/crt/intermediate.crt
</VirtualHost> 

Với một chứng nhận CA đã ký, mọi thứ thay đổi một chút. Bạn cần sử dụng private.keytệp đã được sử dụng để ký chứng chỉ CA, chứ không phải tệp bạn đã sử dụng để làm chứng chỉ tự ký.

Trong một số trường hợp, bạn có thể xuất khóa từ tệp được cung cấp cho bạn nhưng chúng tôi cần biết thêm thông tin về tệp chứng chỉ thực tế mà bạn đã được cung cấp.

Thí dụ

Tôi đã xử lý các tệp .p12 trong đó tôi cần giải nén tệp .key từ đó.

$ openssl pkcs12 -in star_qmetricstech_com.p12 -out star_qmetricstech_com.key 

Nhưng với chứng chỉ SSL, có nhiều loại tệp chứa và vì vậy bạn phải đặc biệt chú ý đến các tệp khác nhau và loại nào được sử dụng cùng nhau.

Người giới thiệu

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.