Tạo không tương tác các yêu cầu chứng chỉ SSL


15

Có cách nào để tạo các yêu cầu chứng chỉ SSL bằng cách chỉ định tất cả các tham số bắt buộc trên lệnh ban đầu không? Tôi đang viết một bảng điều khiển máy chủ web dựa trên CLI và tôi muốn tránh việc sử dụng mong đợi khi thực thi opensslnếu có thể.

Đây là một cách điển hình để tạo một yêu cầu chứng chỉ:

$ openssl req -new -newkey rsa:2048 -nodes -sha256 -keyout foobar.com.key -out foobar.com.csr
Generating a 2048 bit RSA private key
.................................................+++
........................................+++
writing new private key to 'foobar.com.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:New Sweden
Locality Name (eg, city) []:Stockholm
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Scandanavian Ventures, Inc.
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:foobar.com
Email Address []:gustav@foobar.com

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:FooBar

Tôi hy vọng sẽ thấy một cái gì đó như thế này: (ví dụ không hoạt động)

$ openssl req -new -newkey rsa:2048 -nodes -sha256 -keyout foobar.com.key -out foobar.com.csr \
-Country US \
-State "New Sweden" \
-Locality Stockholm \
-Organization "Scandanavian Ventures, Inc." \
-CommonName  foobar.com \
-EmailAddress gustav@foobar.com \
-Company FooBar

Trang mỹ không có gì để nói về vấn đề này, tôi cũng không thể tìm thấy bất cứ điều gì thông qua Google. Việc tạo yêu cầu chứng chỉ SSL phải là một quá trình tương tác, hoặc có cách nào đó để chỉ định tất cả các tham số trong một lệnh không?

Đây là trên một bản phân phối Linux có nguồn gốc từ Debian đang chạy openssl 1.0.1.



@ceejayoz: Rất đẹp, cảm ơn bạn. ) Những openssllá cờ được ghi lại ở đâu? ב) Bạn đã google cái gì để tìm cái đó? Cảm ơn bạn!
dotancohen

1
Tôi googled "CSR tạo tập lệnh". Các -subjtham số được ghi chép lại (không phải chi tiết hơn) tại openssl.org/docs/apps/req.html .
ceejayoz

Cũng có thể tạo một tập tin cấu hình, thường được gọi là openssl.cnf.
sebix

Câu trả lời:


16

bạn đang thiếu hai phần:

dòng chủ đề, có thể được gọi là

-subj "/C=US/ST=New Sweden/L=Stockholm /O=.../OU=.../CN=.../emailAddress=..."
  • thay thế ... bằng giá trị, X=là mã X509 ( O rganisation / O rganisation U nit / etc ...)

giá trị mật khẩu, có thể được gọi là

-passout pass:client11
-passin  pass:client11
  • cung cấp mật khẩu đầu ra / đầu vào

cuộc gọi của tôi cho khóa mới trông giống như

openssl genrsa -aes256 -out lib/client1.key -passout pass:client11 1024
openssl rsa -in lib/client1.key -passin pass:client11 -out lib/client1-nokey.key

openssl req -new -key lib/client1.key -subj req -new \
    -passin pass:client11 -out lib/client1.csr \
    -subj "/C=US/ST=New Sweden/L=Stockholm/O=.../OU=.../CN=.../emailAddress=..."

(bây giờ tôi thấy nó, có hai -new...)


2

Kiểm tra -batchtùy chọn như được mô tả trong các tài liệu chính thức .


2
Cảm ơn bạn. Tôi thấy rằng tùy chọn lô tồn tại, nhưng dường như không có lời giải thích nào về cách sử dụng nó.
dotancohen

Tại sao câu trả lời này bị hạ thấp? Là lô không phải là một giải pháp có thể cho vấn đề? Từ cái tên, có vẻ như nó chỉ có thể là.
dotancohen

Đó chắc chắn là cách duy nhất để làm điều này với tùy chọn -batch, tại sao tôi không biết. Tuyên bố "Trang mỹ không có gì để nói về vấn đề này" là sai, vì tùy chọn "-batch".
đẩy

Được khuyến khích để đề cập đến lô, vì mặc dù tôi đã không sử dụng nó trong giải pháp, nó có thể có ích trong tương lai.
dotancohen

-1

Tôi nối thêm lệnh openssl thông thường của mình:

openssl req -x509 -nodes -day 7300 -newkey rsa: 2048 -keyout /etc/ssl/private/key.pem -out /etc/ssl/private/cert.pem

Đường thẳng này:

-subj "/C=PE/ST=Lima/L=Lima/O=Acme Inc. /OU=IT Department/CN=acme.com"

Sự miêu tả:

  • Tên quốc gia (mã 2 chữ cái) [AU]: PE
  • Tên tiểu bang hoặc tỉnh (tên đầy đủ) [Một số tiểu bang]: Lima
  • Tên địa phương (ví dụ: thành phố) []: Lima
  • Tên tổ chức (ví dụ: công ty) [Internet Widgits Pty Ltd]: Acme Inc.
  • Tên đơn vị tổ chức (ví dụ: phần) []: Phòng CNTT
  • Tên chung (ví dụ: máy chủ FQDN hoặc tên CỦA BẠN) []: acme.com

Sử dụng "/" như dấu phân cách.


1
Có vẻ như câu trả lời được chấp nhận đã bao gồm thông tin này. Nếu không, cảm ơn bạn.
dotancohen
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.