Серверный сертификат и сертификат клиента должны быть подписаны одним и тем же центром сертификации в SSL. - PullRequest
0 голосов
/ 12 ноября 2018

Я пытаюсь понять отношения между клиентом и сервером в контексте SSL-соединения. Правильно ли я понимаю, что тот факт, что один и тот же центр сертификации (я - в примере ниже) подписывает сертификат сервера и клиента, позволяет им общаться. Таким образом, что сервер принимает связь только тогда, когда клиент аутентифицируется с помощью сертификата клиента, подписанного тем же центром сертификации, что и сертификат сервера, и это важно для идеи соединения SSL?

(скрипт ниже взят из http://blog.nategood.com/client-side-certificate-authentication-in-ngi)

# Create the CA Key and Certificate for signing Client Certs
openssl genrsa -des3 -out ca.key 4096
openssl req -new -x509 -days 365 -key ca.key -out ca.crt

# Create the Server Key, CSR, and Certificate
openssl genrsa -des3 -out server.key 1024
openssl req -new -key server.key -out server.csr

# We're self signing our own server cert here.  This is a no-no in production.
openssl x509 -req -days 365 -in server.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out server.crt

# Create the Client Key and CSR
openssl genrsa -des3 -out client.key 1024
openssl req -new -key client.key -out client.csr

# Sign the client certificate with our CA cert.  Unlike signing our own server cert, this is what we want to do.
openssl x509 -req -days 365 -in client.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out client.crt

server {
    listen        443;
    ssl on;
    server_name example.com;

    ssl_certificate      /etc/nginx/certs/server.crt;
    ssl_certificate_key  /etc/nginx/certs/server.key;
    ssl_client_certificate /etc/nginx/certs/ca.crt;
    ssl_verify_client on;

1 Ответ

0 голосов
/ 13 ноября 2018

Краткий ответ - Нет. Это два отдельных аспекта. Здесь:

ssl_certificate      /etc/nginx/certs/server.crt;
ssl_certificate_key  /etc/nginx/certs/server.key;

Вы настраиваете сертификаты сервера, которым клиент должен доверять. Здесь:

ssl_client_certificate /etc/nginx/certs/ca.crt;

Вы настраиваете центр сертификации для проверки сертификатов своих клиентов по.

...