Tạo chứng chỉ SSL tự ký cho apache


10

Tôi muốn tạo chứng chỉ tự ký cho trang web. Giấy chứng nhận cũ đã hết hạn vài ngày trước. Có nhiều hơn một NameVirtualhost được lưu trữ trên các hệ thống. Các lệnh tôi đang sử dụng để tạo chứng chỉ được lấy từ một trang web hướng dẫn và là:

openssl genrsa -des3 -out server.key 1024
openssl req -new -key server.key -out server.csr 
cp server.key server.key.org
openssl rsa -in server.key.org -out server.key
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

Sau này trong tệp ssl.conf tôi đã chỉ định trong phần Virtualhost cùng với các cài đặt cũ được thực hiện bởi quản trị viên khác

SSLEngine on
SSLCertificateFile <full_path>/server.crt
SSLCertificateKeyFile <full_path>/server.key

Khi khởi động máy chủ, tôi nhận được các thông báo sau trong tệp nhật ký và máy chủ không khởi động được.

Trong tệp tin error_log là

 [Mon Jun 01 23:52:46 2009] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)

Trong ssl_error_log tin nhắn tập tin là

 [Mon Jun 01 23:52:46 2009] [error] Init: Private key not found
 [Mon Jun 01 23:52:46 2009] [error] SSL Library Error: 218710120 error:0D094068:asn1 encoding routines:d2i_ASN1_SET:bad tag
 [Mon Jun 01 23:52:46 2009] [error] SSL Library Error: 218529960 error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
 [Mon Jun 01 23:52:46 2009] [error] SSL Library Error: 218595386 error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error
 [Mon Jun 01 23:52:46 2009] [error] SSL Library Error: 218734605 error:0D09A00D:asn1 encoding routines:d2i_PrivateKey:ASN1 lib

Tôi thực sự sẽ đánh giá cao nếu ai đó có thể giải thích làm thế nào để giải quyết điều này. Tôi đã thử một vài trang web hướng dẫn khác về chứng chỉ SSL tự ký nhưng không có bước nào họ đề cập đang hoạt động.

Câu trả lời:


21

Sử dụng một lớp lót này để tạo chứng chỉ và khóa trong một tệp

openssl req -new -x509 -days 999 -nodes -out apache.pem -keyout apache.pem

Sau đó, cấu hình duy nhất bạn cần là

SSLEngine on
SSLCertificateFile /etc/apache2/apache.pem

bạn có nghĩa là thêm dòng trên sslengine trên và sslcertertfile / etc / ssh
Rajat

Đây là cấu hình apache, không phải ssh.
hayalci

1
Lệnh đó sẽ để lại khóa riêng rõ ràng trên hệ thống tệp, trái ngược với lệnh ban đầu của OP. Bỏ -nodestùy chọn mã hóa khóa bằng Triple-DES. (Tất nhiên mật khẩu của khóa sẽ cần được cung cấp bất cứ khi nào máy chủ khởi động.) Lệnh OpenSSL reqkhông hỗ trợ tạo các khóa được mã hóa mạnh hơn, nhưng có thể sử dụng các khóa được mã hóa mạnh trước đó.
Calrion

4

Điều này có vẻ hơi tầm thường, nhưng hãy kiểm tra quyền trên tệp .key của bạn


+1 Đôi khi những điều tầm thường là ít nghĩ đến nhất.
Burkhard

0

Bạn có thể sử dụng openssl req -newkey rsa:1024 -keyout privkey.pemđể lưu khóa SSL khi nó được tạo, trong trường hợp việc tạo khóa không hoàn toàn đúng.

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.