Tạo, quản lý & Chuyển đổi chứng chỉ SSL với OpenSSL
Một trong những lệnh phổ biến nhất trong SSL để tạo nên, đổi, quản lý Chứng chỉ SSL là OpenSSL.
Sẽ có nhiều tình huống bạn phải đối phó với OpenSSL theo nhiều cách khác nhau và ở đây tôi đã liệt kê chúng cho bạn như một bảng cheat tiện dụng.
Trong bài viết này, tôi sẽ nói về các lệnh OpenSSL được sử dụng thường xuyên để giúp bạn trong thế giới thực.
Một số chữ viết tắt liên quan đến chứng chỉ.
- SSL – Lớp cổng bảo mật
- CSR – Yêu cầu ký chứng chỉ
- TLS – Bảo mật lớp vận chuyển
- PEM – Thư tăng cường bảo mật
- DER – Quy tắc mã hóa đặc biệt
- SHA – Thuật toán băm an toàn
- PKCS – Tiêu chuẩn mã hóa khóa công khai
Ghi chú: Khóa học vận hành SSL / TLS sẽ hữu ích nếu bạn không quen thuộc với các điều khoản.
Contents
- 1 Tạo Khóa riêng và Yêu cầu ký chứng chỉ
- 2 Tạo chứng chỉ tự ký
- 3 Xác minh tệp CSR
- 4 Tạo khóa riêng RSA
- 5 Xóa cụm mật khẩu khỏi khóa
- 6 Xác minh khóa riêng
- 7 Xác nhận tập tin chứng chỉ
- 8 Xác nhận Cơ quan ký chứng chỉ
- 9 Kiểm tra giá trị băm của chứng chỉ A
- 10 Chuyển đổi định dạng DER sang PEM
- 11 Chuyển đổi định dạng PEM sang DER
- 12 Chuyển đổi Chứng chỉ và Khóa riêng sang định dạng PKCS # 12
- 13 Tạo CSR bằng khóa riêng hiện có
- 14 Kiểm tra nội dung của chứng chỉ định dạng PKCS12
- 15 Chuyển đổi định dạng PKCS12 sang chứng chỉ PEM
- 16 Kiểm tra chứng chỉ SSL của URL cụ thể
- 17 Tìm hiểu phiên bản OpenSSL
- 18 Kiểm tra ngày hết hạn chứng chỉ tệp PEM
- 19 Kiểm tra ngày hết hạn chứng chỉ của URL SSL
- 20 Kiểm tra xem SSL V2 hoặc V3 có được chấp nhận trên URL không
- 21 Xác minh nếu mật mã cụ thể được chấp nhận trên URL
Tạo Khóa riêng và Yêu cầu ký chứng chỉ
openssl req -out geekflare.csr -newkey rsa: 2048 -nodes -keyout geekflare.key
Lệnh trên sẽ tạo tệp khóa CSR và 2048 bit RSA. Nếu bạn có ý định sử dụng chứng chỉ này trong Apache hoặc Nginx, thì bạn cần gửi tệp CSR này tới cơ quan cấp chứng chỉ và họ sẽ cung cấp cho bạn chứng chỉ đã ký chủ yếu ở định dạng der hoặc pem mà bạn cần định cấu hình trong máy chủ web Apache hoặc Nginx.
Tạo chứng chỉ tự ký
openssl req -x509 -sha256 -nodes -newkey rsa: 2048 -keyout gfelfsign.key -out gfcert.pem
Lệnh trên sẽ tạo chứng chỉ tự ký và tệp chính với RSA 2048 bit. Tôi cũng đã bao gồm sha256 vì nó được coi là an toàn nhất vào lúc này.
Tiền boa: theo mặc định, nó sẽ tạo chứng chỉ tự ký chỉ có hiệu lực trong một tháng để bạn có thể xem xét việc xác định tham số Ngày hôm nay để mở rộng hiệu lực.
Ví dụ: để tự ký có hiệu lực trong hai năm.
openssl req -x509 -sha256 -nodes -day 730 -newkey rsa: 2048 -keyout gfelfsign.key -out gfcert.pem
Xác minh tệp CSR
openssl req -noout -text -in geekflare.csr
Xác minh là điều cần thiết để đảm bảo bạn đang gửi CSR cho cơ quan phát hành với các chi tiết bắt buộc.
Tạo khóa riêng RSA
openssl genrsa -out private.key 2048
Nếu bạn chỉ cần tạo khóa riêng RSA, bạn có thể sử dụng lệnh trên. Tôi đã bao gồm 2048 để mã hóa mạnh hơn.
Xóa cụm mật khẩu khỏi khóa
openssl rsa -in certkey.key -out nopassphrase.key
Nếu bạn đang sử dụng cụm mật khẩu trong tệp chính và sử dụng Apache thì mỗi lần bạn bắt đầu, bạn phải nhập mật khẩu. Nếu bạn cảm thấy khó chịu với việc nhập mật khẩu, thì bạn có thể sử dụng openssl rsa -in geekflare.key -check để xóa khóa cụm mật khẩu khỏi khóa hiện có.
Xác minh khóa riêng
openssl rsa -in certkey.key
Nếu bạn nghi ngờ về tệp chính của mình, bạn có thể sử dụng lệnh trên để kiểm tra.
Xác nhận tập tin chứng chỉ
openssl x509 -in certfile.pem -text Từ chối
Nếu bạn muốn xác thực dữ liệu chứng chỉ như CN, OU, v.v. thì bạn có thể sử dụng một lệnh trên sẽ cung cấp cho bạn chi tiết chứng chỉ.
Xác nhận Cơ quan ký chứng chỉ
openssl x509 -in certfile.pem -noout -issuer -issuer_hash
Cơ quan cấp chứng chỉ ký mọi chứng chỉ và trong trường hợp bạn cần kiểm tra chúng.
Kiểm tra giá trị băm của chứng chỉ A
openssl x509 -noout -hash -in bestflare.pem
Chuyển đổi định dạng DER sang PEM
openssl x509Vinform der derin sslcert.der Cấmout sslcert.pem
Thông thường, tổ chức chứng nhận sẽ cung cấp cho bạn chứng chỉ SSL ở định dạng .der và nếu bạn cần sử dụng chúng ở định dạng apache hoặc .pem thì lệnh trên sẽ giúp bạn.
Chuyển đổi định dạng PEM sang DER
openssl x509 từoutout der derin sslcert.pem ănout sslcert.der
Trong trường hợp bạn cần thay đổi định dạng .pem thành .der
Chuyển đổi Chứng chỉ và Khóa riêng sang định dạng PKCS # 12
openssl pkcs12 từexexportoutout sslcert.pfxTHERinkey key.pem Khănin sslcert.pem
Nếu bạn cần sử dụng chứng chỉ với ứng dụng java hoặc với bất kỳ ai khác chỉ chấp nhận định dạng PKCS # 12, bạn có thể sử dụng lệnh trên, sẽ tạo chứng chỉ chứa pfx duy nhất & tài liệu quan trọng.
Tiền boa: bạn cũng có thể bao gồm chứng chỉ chuỗi bằng cách chuyển qua Bitcoinchain như dưới đây.
openssl pkcs12 từexexportoutout sslcert.pfx mậtinkey key.pem Khănin sslcert.pem -chain cacert.pem
Tạo CSR bằng khóa riêng hiện có
openssl reqiêuout cert.csriêukey hiện.key
Nếu bạn không muốn tạo khóa riêng mới thay vì sử dụng khóa hiện có, bạn có thể thực hiện bằng lệnh trên.
Kiểm tra nội dung của chứng chỉ định dạng PKCS12
openssl pkcs12 từ chối thông tin điện tử certin cert.p12
PKCS12 là định dạng nhị phân, do đó, bạn đã giành chiến thắng có thể xem nội dung trong notepad hoặc trình chỉnh sửa khác. Lệnh trên sẽ giúp bạn xem nội dung của tệp PKCS12.
Chuyển đổi định dạng PKCS12 sang chứng chỉ PEM
openssl pkcs12 hungin cert.p12 hungout cert.pem
Nếu bạn muốn sử dụng định dạng pkcs12 hiện có với Apache hoặc chỉ ở định dạng pem, điều này sẽ hữu ích.
Kiểm tra chứng chỉ SSL của URL cụ thể
openssl s_client -connect yoururl.com:443
Tôi sử dụng điều này khá thường xuyên để xác thực chứng chỉ SSL của URL cụ thể từ máy chủ. Điều này rất thuận tiện để xác nhận các chi tiết về giao thức, mật mã và chứng chỉ.
Tìm hiểu phiên bản OpenSSL
phiên bản openssl
Nếu bạn chịu trách nhiệm đảm bảo OpenSSL an toàn thì có lẽ một trong những điều đầu tiên bạn phải làm là xác minh phiên bản.
Kiểm tra ngày hết hạn chứng chỉ tệp PEM
openssl x509 -noout -in cert.pem -dates
Hữu ích nếu bạn đang dự định đặt một số giám sát để kiểm tra tính hợp lệ. Nó sẽ hiển thị cho bạn ngày theo cú pháp notB Before và notAfter. Không phải sau khi bạn sẽ phải xác minh để xác nhận xem chứng chỉ đã hết hạn hay vẫn còn hiệu lực.
Ví dụ:
[[email được bảo vệ] opt] # openssl x509 -noout -in bestflare.pem -dates
không phải trước= 4 tháng 4 14:02:45 2015 GMT
không phải sau khi= Ngày 4 tháng 8 09:46:42 2015 GMT
[[email được bảo vệ] opt]#
Kiểm tra ngày hết hạn chứng chỉ của URL SSL
openssl s_client -connect safeurl.com:443 2>/ dev / null | openssl x509 -không raendendendate
Một cách hữu ích khác nếu bạn dự định theo dõi ngày hết hạn chứng chỉ SSL hoặc URL cụ thể.
Ví dụ:
[[email được bảo vệ] opt] # openssl s_client -connect google.com:443 2>/ dev / null | openssl x509 -không ra -enddate
không phải sau khi= Ngày 8 tháng 12 00:00:00 GMT GMT
Kiểm tra xem SSL V2 hoặc V3 có được chấp nhận trên URL không
Để kiểm tra SSL V2
openssl s_client -connect safeurl.com:443 -ssl2
Để kiểm tra SSL V3
openssl s_client -connect safeurl.com:443 Mạnhssl3
Để kiểm tra TLS 1.0
openssl s_client -connect safeurl.com:443
Để kiểm tra TLS 1.1
openssl s_client -connect safeurl.com:443 Khăntls1_1
Để kiểm tra TLS 1.2
openssl s_client -connect safeurl.com:443 Khăntls1_2
Nếu bạn đang bảo mật máy chủ web và cần xác thực nếu SSL V2 / V3 được bật hay không, bạn có thể sử dụng lệnh trên. Nếu được kích hoạt, bạn sẽ nhận đượcKẾT NỐIKhác người khácthất bại bắt tay.Giáo dục
Xác minh nếu mật mã cụ thể được chấp nhận trên URL
openssl s_client -codes ‘ECDHE-ECDSA-AES256-SHA’ -connect an toàn: 443
Nếu bạn đang làm việc trên các kết quả bảo mật và kết quả kiểm tra bút cho thấy một số mật mã yếu được chấp nhận sau đó để xác thực, bạn có thể sử dụng lệnh trên.
Tất nhiên, bạn sẽ phải thay đổi mật mã và URL mà bạn muốn kiểm tra. Nếu mật mã được đề cập được chấp nhận, thì bạn sẽ nhận đượcKẾT NỐIKhác người khácthất bại bắt tay.Giáo dục
Tôi hy vọng các lệnh trên giúp bạn biết thêm về OpenSSL để quản lý Chứng chỉ SSL cho trang web của bạn.