我已经将我的MongoDB设置为只接受SSL上的连接。Mongo有一个我用以下命令生成的证书的句柄
openssl req -newkey rsa:2048 -new -x509 -days 365 -nodes -out server-cert.crt -keyout server-private.key
cat server-cert.crt server-private.key > /etc/ssl/mongoSSL.pem我在我的/etc/mongod.cnf.
sslMode=requireSSL
sslPEMKeyFile=/etc/ssl/mongo/mongoSSL.pem每当Tomcat试图与Mongo交谈时,由于没有提供SSL证书,它就会失败。我将/opt/tomcat/conf/server.xml设置为具有以下内容
<Connector port="27017" protocol="org.apache.coyote.http11.Http11NioProtocol"
SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" keystoreFile="/etc/ssl/mongo/mongoSSL.pem"/>然而,这是行不通的。有没有人有一个教程的链接,可以进一步了解这是如何做到这一点?我找到了一个用阿帕奇配置SSL的教程,我发现基于SSL支持的Apache文档似乎都不适合我的用例。谢谢。
发布于 2015-10-01 21:19:34
每当Tomcat试图与Mongo交谈时,由于没有提供SSL证书,它就会失败。我将/opt/tomcat/conf/server.xml设置为具有以下内容
您的假设是错误的,您的server.xml配置没有指示Tomcat向MongoDB提供SSL证书。它告诉Tomcat在端口27017上侦听安全(https)连接(不管怎么说,它都被MongoDB占用了)。您应该放弃Tomcat连接器设置。
实际上,sslMode=requireSSL并没有指示MongoDB为两种身份验证要求客户端证书。它只指示MongoDB只接受安全的SSL连接。
您需要做的不是配置Tomcat,而是配置MongoDB驱动程序(我假设这里使用的是驱动程序)。
配置Java驱动程序相当容易。你可以在这里找到说明
https://stackoverflow.com/questions/32895849
复制相似问题