ssl - 可以针对浏览器(作为客户端)测试 2 向 SSL 吗?

标签 ssl nginx

我正在尝试在 nginx 服务器和客户端(浏览器/ postman )之间建立双向 SSL 连接。 我想知道是否应该可以告诉 nginx 信任浏览器/ postman 的 key ,假设 nginx 请求并验证客户端的证书。 具体来说,应该在nginx的那个部分放什么

server {
    listen 443;
    ssl on;
    ssl_certificate /etc/nginx/ssl/newcert.crt;
    ssl_certificate_key /etc/nginx/ssl/newkey.pem;


    ssl_session_timeout 15m;
    ssl_protocols SSLv3 TLSv1;
    ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP;
    ssl_prefer_server_ciphers on;

    ssl_verify_client on;
    ssl_verify_depth 2;

    # what should be the content of that file??
   >>>>>> ssl_client_certificate /etc/nginx/ssl/trust/client.crt;


}

我没能找到关于这个的任何信息......

谢谢。

最佳答案

ssl_client_certificate 指令指向包含用于签署客户端的证书请求证书颁发机构 的文件。参见 this document了解详情。

如果您正在为您的客户端证书使用自签名证书颁发机构,则过程如下所示:

  1. 创建一个自签名证书以用作证书颁发机构。参见 OpenSSL CA(1)用于管理此步骤的简化方案。
  2. 为客户端生成证书请求。例如:

    openssl req -newkey rsa:2048 -nodes -keyout user.key -out user.req
    
  3. 使用第 1 步中的 CA 签署第 2 步中的请求,为客户端生成证书。请参阅上面的 OpenSSL CA(1)。

  4. 将步骤 3 中的证书转换为 PKCS#12 格式的文件,以便客户端可以导入。例如:

    cat user.key user.crt | openssl pkcs12 -export -out user.p12
    

关于ssl - 可以针对浏览器(作为客户端)测试 2 向 SSL 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42345170/

相关文章:

java - NoHostAvailableException::Java 到 Cassandra SSL 集群连接失败

powershell - 如何在Windows 2019中将FTP服务器的SSL设置为无SSL

tomcat - 本地主机 : "This site can’ t provide a secure connection"

php - Nginx 将参数传递给 PHP 文件

ssl - 在上游 block 中定义时,Cloudfront的Nginx代理失败,并显示SNI相关错误

email - 如何在 PHP-FPM 中使用 PHP Mail() 函数?在 Nginx 上?

ssl - Openshift trustwave 中间 ssl 证书问题

Azure 应用服务突然 SSL 证书无效

CakePHP 与 Homestead

url-rewriting - 使用proxy_pass时,是否可以使用/etc/hosts代替 "resolver"来解析域名?