Điều gì gây ra cảnh báo trên basicConstraint của chứng chỉ?


8

Tôi đã tạo chứng chỉ máy chủ tự ký bằng req -x509lệnh OpenSSL và tệp CONF. Tệp CONF được hiển thị bên dưới.

Khi tôi kiểm tra chứng chỉ bằng trình xem chứng chỉ Microsoft, nó sẽ hiển thị cảnh báo basicConstraints(chú ý dấu chấm than nhỏ):

nhập mô tả hình ảnh ở đây

Tệp CONF sử dụng như sau để xây dựng basicConstraints:

basicConstraints = critical,CA:FALSE

Theo RFC 5280 , pathLenchỉ nên có mặt nếu CA:TRUEkeyCertSigncó mặt. Chứng chỉ của máy chủ không thỏa mãn một trong hai điều kiện (cộng với thử nghiệm với pathLenkết quả cảnh báo tương tự).

Tại sao cảnh báo công cụ chứng chỉ Microsoft trên basicConstraints? Điều gì sai với nó hoặc tôi nên làm gì để khắc phục nó?


# Self Signed (note the addition of -x509):
#     openssl req -config example.conf -new -x509 -sha256 -newkey rsa:2048 -nodes -keyout example.key.pem -days 365 -out example.cert.pem

# Self Signed with existing key (note the addition of -x509):
#     openssl req -config example.conf -new -x509 -sha256 -key example.key.pem -days 365 -out example.cert.pem

# Signing Request (note the lack of -x509):
#     openssl req -config example.conf -new -newkey rsa:2048 -nodes -keyout example.key.pem -days 365 -out example.req.pem

# Signing Request with existing key (note the lack of -x509):
#     openssl req -config example.conf -new -key example.key.pem -days 365 -out example.req.pem

# Print it:
#     openssl x509 -in example.cert.pem -text -noout
#     openssl req -in example.req.pem -text -noout

[ req ]
default_bits        = 2048
default_keyfile     = server-key.pem
distinguished_name  = subject
req_extensions      = req_ext
x509_extensions     = x509_ext
string_mask         = utf8only

# The Subject DN can be formed using X501 or RFC 4514 (see RFC 4519 for a description).
#   Its sort of a mashup. For example, RFC 4514 does not provide emailAddress.
[ subject ]
countryName         = Country Name (2 letter code)
countryName_default     = US

stateOrProvinceName     = State or Province Name (full name)
stateOrProvinceName_default = MD

localityName            = Locality Name (eg, city)
localityName_default        = Baltimore

organizationName         = Organization Name (eg, company)
organizationName_default    =

# Use a friendly name here because its presented to the user. The server's DNS
#   names are placed in Subject Alternate Names. Plus, DNS names here is deprecated
#   by both IETF and CA/Browser Forums.
commonName          = Common Name (e.g. server FQDN or YOUR name)
commonName_default      = Example, LLC

emailAddress            = Email Address
emailAddress_default        = webmaster@example.com

# Section x509_ext is used when generating a self-signed certificate. I.e., openssl req -x509 ...
[ x509_ext ]

subjectKeyIdentifier        = hash
authorityKeyIdentifier  = keyid,issuer

basicConstraints        = critical,CA:FALSE
keyUsage            = digitalSignature, keyEncipherment
subjectAltName          = @alternate_names
nsComment           = "OpenSSL Generated Certificate"

# RFC 5280, Section 4.2.1.12 makes EKU optional
# CA/Browser Baseline Requirements, Appendix (B)(3)(G) makes me confused
extendedKeyUsage    = serverAuth

# Section req_ext is used when generating a certificate signing request. I.e., openssl req ...
[ req_ext ]

subjectKeyIdentifier        = hash

basicConstraints        = critical,CA:FALSE
keyUsage            = digitalSignature, keyEncipherment
subjectAltName          = @alternate_names
nsComment           = "OpenSSL Generated Certificate"

# RFC 5280, Section 4.2.1.12 makes EKU optional
# CA/Browser Baseline Requirements, Appendix (B)(3)(G) makes me confused
extendedKeyUsage    = serverAuth

[ alternate_names ]

DNS.1       = example.com
DNS.2       = www.example.com
DNS.3       = mail.example.com
DNS.4       = ftp.example.com

# Add these if you need them. But usually you don't want them or
#   need them in production. You may need them for development.
# DNS.5       = localhost
# DNS.6       = localhost.localdomain
# DNS.7       = 127.0.0.1

# IPv6 localhost
# DNS.8     = ::1

Câu trả lời:


6

Hình tam giác nhỏ màu vàng có dấu chấm than ở đó để cho bạn biết rằng phần mở rộng được đánh dấu là quan trọng. Để thoát khỏi biểu tượng, hãy xóa động từ 'quan trọng' khỏi cấu hình OpenSSL.

Ngoài ra, không có yêu cầu đánh dấu các chứng chỉ thực thể cuối với một ràng buộc cơ bản trong đó cAboolean được đặt thành false vì điều này được ngụ ý trong tất cả các chứng chỉ mà nó không được đặt thành đúng. Nó không phải là một vi phạm để có nó ở đó; nhưng nó không cần thiết

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.