小编Han*_*s L的帖子

由中间CA(链)签名的NGinx SSL证书认证

我试图在nginx中启用客户端证书身份验证,其中证书已由中间CA签名.使用由自签名根CA签名的证书时,我能够正常工作; 但是,当签名CA是中间CA时,这不起作用.

我的简单服务器部分如下所示:

server {
    listen       443;
    server_name  _;

    ssl                  on;
    ssl_certificate      cert.pem;
    ssl_certificate_key  cert.key;

    ssl_session_timeout  5m;

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

    ssl_client_certificate ca.pem;
    ssl_verify_client on;
    ssl_verify_depth 1;

    location / {
        root   html;
        index  index.html index.htm;
    }
}
Run Code Online (Sandbox Code Playgroud)

对于ca.pem的内容,我尝试过使用中间CA并连接中间CA证书和根CA证书,例如:

cp intermediate.crt ca.pem
cat root.crt >> ca.pem
Run Code Online (Sandbox Code Playgroud)

我还验证了在使用相同的CA链时,从openssl的角度来看证书是有效的:

openssl verify -CAfile /etc/nginx/ca.pem certs/client.crt 
certs/client.crt: OK
Run Code Online (Sandbox Code Playgroud)

我已经尝试将ssl_verify_depth显式设置为1(如上所述)然后甚至为0(不确定该数字的确切含义),但仍然会得到相同的错误.

我在中间CA的所有变体中得到的错误是"400 Bad Request",更具体地说是"SSL证书错误"(不确定这意味着什么).

也许nginx只是不支持中间证书的证书链?任何帮助非常感谢!

authentication ssl nginx ssl-certificate

39
推荐指数
2
解决办法
5万
查看次数

有多处理工作者的扭曲网络客户端?

所以,我有一个使用Twisted + Stomper作为STOMP客户端的应用程序,它将工作分配给多处理工具.工人工具.

当我只使用python脚本启动时,这似乎工作正常,(简化)看起来像这样:

# stompclient.py

logging.config.fileConfig(config_path)
logger = logging.getLogger(__name__)

# Add observer to make Twisted log via python
twisted.python.log.PythonLoggingObserver().start() 

# initialize the process pool.  (child processes get forked off immediately)
pool = multiprocessing.Pool(processes=processes)

StompClientFactory.username = username
StompClientFactory.password = password
StompClientFactory.destination = destination
reactor.connectTCP(host, port, StompClientFactory())
reactor.run()
Run Code Online (Sandbox Code Playgroud)

当这个打包进行部署时,我想我会利用扭曲的脚本并从tac文件中运行它.

这是我非常相似的tac文件:

# stompclient.tac

logging.config.fileConfig(config_path)
logger = logging.getLogger(__name__)

# Add observer to make Twisted log via python
twisted.python.log.PythonLoggingObserver().start() 

# initialize the process pool.  (child processes get forked off immediately)
pool = multiprocessing.Pool(processes=processes)

StompClientFactory.username …
Run Code Online (Sandbox Code Playgroud)

python twisted multiprocessing

7
推荐指数
1
解决办法
3924
查看次数