Articles of ssl certificate

NginxconfigurationSSL负载均衡器

我有一个Docker服务器,我已经从sameersbn / docker-gitlab安装了GitLab 我有一个nginx容器,它侦听443:433和80:80,我将使用这个负载平衡HTTP和HTTP(带签名证书)请求 nginx.conf worker_processes auto; events { worker_connections 1024; } http { ## # Logging Settings ## access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; upstream gitlab { server gitlab:10080; } server { listen 80; listen 443 ssl; server_name www.domain.tld; ssl on; ssl_certificate /usr/local/share/ca-certificates/domain.crt; ssl_certificate_key /usr/local/share/ca-certificates/domain.key; ssl_trusted_certificate /usr/local/share/ca-certificates/GandiStandardSSLCA2.pem; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers "HIGH:!aNULL:!MD5 or […]

NGINXconfiguration代理到Sinatra服务器的SSL请求

我有一把钥匙,证书和连锁证书。 该域看起来像automation.mydomain.com 我有一个运行在localhost:3000上的Sinatra服务器,通过curl localhost:3000/test确认。 我想redirect端口80和端口443stream量到3000.这是我的/etc/sites-enabled/sinatraconfiguration: upstream app_aggregator { server 127.0.0.1:3000; keepalive 8; } # the nginx server instance server { listen 0.0.0.0:80; server_name automation.mydomain.com my_site; access_log /var/log/nginx/aggregator.log; # pass the request to the node.js server with the correct headers # and much more can be added, see nginx config options location / { proxy_set_header X-Real-IP […]

在Nginx上禁用SSLv3

为什么我的服务器仍然启用SSLv3? 我想禁用的原因,在一些电脑无法打开我的网页,因为安全问题。 我发现这个指南 : 但是目前我已经确定了。 我的服务器托pipe在Google Cloud中,我目前有这个Nginxconfiguration文件: … ssl on; ssl_certificate /etc/nginx/dba_certs/dba_ssl2/ssl-bundle.crt; ssl_certificate_key /etc/nginx/dba_certs/dba_keys/dba.key; ssl_session_cache builtin:1000 shared:SSL:10m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4; ssl_prefer_server_ciphers on; … OpenSSL版本是1.0.1f 2014年1月6日。 什么可能是错的?

nginx SSL客户端证书与签名的根和中间

我正在尝试设置SSL客户端身份validation。 我使用startssl作为一个CA,如果这有什么区别。 我从startssl获得了根​​证书,中间证书和客户端证书。 我还有几个s / mime证书用于对startssl网站进行身份validation。 我试图完成的是有我的网站的客户端证书身份validation。 一切工作使用自签名证书,但使用签署的证书,我感到困惑。 我从startssl有以下文件: root.crt intermediate.crt ssl.crt ssl.key —————- user@host-client.crt <- for authenticating against startssl 那么对于nginx我运行: cat ssl.crt intermediate.crt root.crt > unified.crt 然后在nginx中: server { listen 443; ssl on; server_name example.com; ssl_certificate /etc/nginx/certs/unified.crt; ssl_certificate_key /etc/nginx/certs/ssl.key; ssl_client_certificate /etc/nginx/certs/<WHAT GOES HERE>; ssl_verify_client on; location / { root /var/www/example.com/html; } } 我不确定如果我想使用startssl s […]

自定义nginx错误页面“SSL证书错误”

如果客户select过期的证书,nginx服务器将显示内置的错误页面。 <html> <head><title>400 The SSL certificate error</title></head> <body bgcolor="white"> <center><h1>400 Bad Request</h1></center> <center>The SSL certificate error</center> <hr><center>nginx</center> </body> </html> 我怎样才能捕捉到错误,并向客户展示不同的页面?

HTTP严格传输安全性不尊重IP地址

我用nginx设置了一个IP地址的证书,并启用了http严格的传输安全性: add_header Strict-Transport-Security "max-age=31536000; includeSubdomains;"; 该指令位于标题中 HTTP/1.1 200 OK Server: nginx Date: Wed, 17 Sep 2014 22:46:54 GMT Content-Type: text/html; charset=utf-8 Transfer-Encoding: chunked Connection: keep-alive Vary: Accept-Encoding Access-Control-Allow-Origin: * X-Frame-Options: SAMEORIGIN X-Content-Type-Options: nosniff X-XSS-Protection: 1; mode=block Strict-Transport-Security: max-age=31536000; includeSubdomains; X-UA-Compatible: IE=Edge,chrome=1 …但这不是由浏览器(而是他们为FQDN)所尊重。

SSL_add0_chain_cert和SSL_add1_chain_cert的使用区别?

在OpenSSL 文档中它说: 所有这些function都是作为macros来实现的。 那些包含一个增量的提供的证书或链的引用计数,所以它必须在操作后的某个时间点被释放。 那些包含0不会增加引用计数,所提供的证书或链不能在操作后被释放。 但是当我试图看看案例的例子,哪个应该用在哪里,我很困惑。 首先OpenSSL : 它在ssl_rsa.c函数中使用SSL_add0_chain_cert本身。 这里是来源: static int use_certificate_chain_file(SSL_CTX *ctx, SSL *ssl, const char *file) { if (ctx) ret = SSL_CTX_use_certificate(ctx, x); else ret = SSL_use_certificate(ssl, x); …… while ((ca = PEM_read_bio_X509(in, NULL, passwd_callback, passwd_callback_userdata)) != NULL) { if (ctx) r = SSL_CTX_add0_chain_cert(ctx, ca); else r = SSL_add0_chain_cert(ssl, ca); …… } […]

Nginx提供其他站点的SSL证书

我正在用Nginx服务两个站点。 第一个站点(比如说A)有一个SSL证书,第二个站点(比如说B)没有。 网站A在http上打开https和B时正常工作。 但是当我通过https访问B站点时,nginx会提供SSL证书和B站点的内容,这是不应该发生的。 网站A的Nginxconfiguration如下。 对于网站B,这只是一个Flask应用程序的反向代理。 server { listen 80; server_name siteA.com; return 301 https://$host$request_uri; } server { listen 443 ssl; server_name siteA.com; ssl_certificate /path/to/cert.cert ssl_certificate_key /path/to/cert_key.key; ssl_prefer_server_ciphers on; ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-RC4-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:RC4-SHA:AES256-GCM-SHA384:AES256-SHA256:CAMELLIA256-SHA:ECDHE-RSA-AES128-SHA:AES128-GCM-SHA256:AES128-SHA256:AES128-SHA:CAMELLIA128-SHA; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; keepalive_timeout 70; # and then the `location /` serving static files } 我无法弄清楚这里有什么问题。

Nginx的proxy_ssl_certificate不能按预期工作

我使用nginx作为后端服务器的代理。 后端服务器也使用nginx并使用ssl_client_certificate和ssl_verify_client指令强制执行客户端证书authentication。 在我的nginx服务器中,我设置了以下内容: location /proxy { proxy_pass https://www.backend.com; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_ssl_certificate /etc/nginx/cert/client.crt; proxy_ssl_certificate_key /etc/nginx/cert/client.key; } 根据nginx文档 。 但是,后端仍然响应400个响应代码"No required SSL certificate was sent" 。 请注意,当使用wget和客户机证书向后端服务器发出请求时,我得到一个有效的200 OK响应: wget –certificate=/etc/nginx/cert/client.crt –private-key=/etc/nginx/cert/client.key https://www.backend.com 我在我的nginxconfiguration中错过了什么?

nginx无法加载ssl certifacate

我必须为一个网站添加ssl(https),我被给了一个SSL.CSR和一个SSL.KEY文件。 我dos2unix'ed他们(因为他们已经尾随^ M),并将其复制到服务器(CSR – > mywebsite.crt,密钥 – > mywebsite.key)。 我对nginx.conf做了如下修改: @@ -60,8 +60,13 @@ } server { – listen 80; + listen 443; server_name …; + ssl on; + ssl_certificate mywebsite.crt; + ssl_certificate_key mywebsite.key; + ssl_session_cache shared:SSL:10m; + ssl_session_timeout 10m; # Set the max size for file uploads to 500Mb client_max_body_size 500M; 重新启动nginx时发生错误: nginx: [emerg] […]