Làm cách nào để tạo chứng chỉ SSL tự ký?


64

Tôi đã thiết lập SSL trên máy chủ web của mình, bây giờ tôi cần hai tệp:

  • một chứng chỉ
  • một chứng chỉ khóa

Làm cách nào để tạo chứng chỉ tự ký cho mục đích thử nghiệm?

Câu trả lời:


93

Ubuntu, thậm chí là hương vị 'tối thiểu', đi kèm với ssl-certgói được cài đặt sẵn, điều đó có nghĩa là bạn không cần phải làm gì cả.

Các tệp bạn đang tìm kiếm đã có trên hệ thống của bạn:

/etc/ssl/certs/ssl-cert-snakeoil.pem
/etc/ssl/private/ssl-cert-snakeoil.key


Nâng cao:

Nếu vì lý do nào đó bạn cần tạo chứng chỉ mới, bạn có thể chạy

sudo make-ssl-cert generate-default-snakeoil --force-overwrite 

Nếu bạn muốn thay đổi ngày hết hạn của chứng chỉ, bạn có thể thao tác tập lệnh make-ssl-cert tại /usr/sbin/make-ssl-cert. Khoảng 124 có một dòng tương tự như thế này:

openssl req -config $TMPFILE -new -x509 -nodes \ 

Nơi bạn có thể thay đổi ngày hết hạn bằng cách thêm -daysđối số:

openssl req -config $TMPFILE -new -days 365 -x509 -nodes \ 

Nhiều tùy chọn có thể được tìm thấy trong trang hướng dẫn củareq .


10
ubfox-server 12.04 (hình ảnh đám mây AMI) không có ssl-cert được cài đặt theo mặc định có nó. Nhưng một khi ssl-cert được cài đặt - /etc/ssl/certs/ssl-cert-snakeoil.pem sẽ tự động có sẵn.
Stann

make-ssl-cert lấy độ dài khóa (và các cài đặt khác) để sử dụng /usr/share/ssl-cert/ssleay.cnf.
Tim Smith

Khi thử kiểm tra một trang web trong một ví dụ VM mơ hồ cục bộ, tôi muốn Google Chrome hoạt động như thể đó là một chứng chỉ hoàn toàn bình thường. Trước tiên tôi phải đặt tên máy chủ của VM để khớp với url kiểm tra (ví dụ www.test.mydomain.com) bằng cách sử dụng hostnamelệnh trong VM CLI. Sau đó, tạo lại khóa như bạn đề xuất, với --force-overwriteTên chung (CN) của khóa đó khớp với url kiểm tra. Cuối cùng, trên máy chủ, cài đặt khóa làm Cơ quan cấp chứng chỉ gốc đáng tin cậy (trong Cài đặt / Nâng cao của Chrome) đã cho tôi thanh địa chỉ màu xanh lá cây được thèm muốn.
Butussy Butkus

1
Chứng chỉ 9 tuổi của tôi đã ngừng hoạt động với bản nâng cấp của tôi lên debian 10, vì vậy make-ssl-certlệnh đã lưu lại ngày cho tôi!
Jayen

23

Như đã đề cập, Ubuntu Server đi kèm với các công cụ cần thiết. Tùy thuộc vào phiên bản máy chủ của bạn, bạn sẽ phải tìm tài liệu cụ thể . Tôi sẽ cố gắng tóm tắt quá trình tạo chứng chỉ tự ký của LTS hiện tại (12.04) .

Trước tiên, bạn tạo các khóa cho Yêu cầu ký chứng chỉ (CSR):

openssl genrsa -des3 -out server.key 2048

Tùy thuộc vào bạn để nhập cụm mật khẩu hay không. Nếu bạn làm như vậy, mỗi khi bạn (bắt đầu) bắt đầu một dịch vụ sử dụng chứng chỉ đó, bạn sẽ phải cung cấp cụm mật khẩu. Otoh bạn có thể tạo khóa "không an toàn" mà không cần cụm mật khẩu từ khóa an toàn:

openssl rsa -in server.key -out server.key.insecure
# shuffle the key names to continue without passphrases
mv server.key server.key.secure
mv server.key.insecure server.key

Và bây giờ bạn sẽ tạo CSR từ khóa. Với CSR và khóa, chứng chỉ tự ký có thể được tạo:

openssl req -new -key server.key -out server.csr
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

Bước cuối cùng bao gồm cài đặt chứng chỉ và khóa, trong Debian / Ubuntu thường là /etc/ssl:

sudo cp server.crt /etc/ssl/certs
sudo cp server.key /etc/ssl/private

Và cuối cùng, các ứng dụng sử dụng chứng chỉ / khóa phải được cấu hình tương ứ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.