AWS Tomcat SSL 浏览器错误 - 我错过了什么?
AWS Tomcat SSL browser errors - what have I missed?
我正在尝试使用我在 AWS Bitnami 上托管的域设置 TLS (SSL),以便用户可以通过 HTTPS 访问它。它 运行 在 Apache Tomcat 上是独立的,没有 LB 前端。
要生成证书签名请求 (CSR),我有:
sudo openssl genrsa -out /opt/bitnami/apache-tomcat/conf/server.key 2048
并输入所有正确的信息,即 www.hostname.com 格式的主机名,然后:
sudo openssl req -new -key /opt/bitnami/apache-tomcat/conf/server.key -out /opt/bitnami/apache2/conf/cert.csr
随后我将 .csr 文件内容复制到 CA (ssl.comodo.com) 并保存生成的文件:.ca-bundle 和 .crt 文件。
之后我将文件上传到 Tomcat 目录并将它们加载到 Java 密钥库中:
keytool -import -trustcacerts -alias root -file www_domainname_com.ca-bundle -keystore KeyStore.jks
和.crt:
keytool -import -trustcacerts -alias tomcat -file www_domainname_com.crt -keystore KeyStore.jks
Tomcat 在 server.xml
中配置为使用此密钥库和以下配置:
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" keystoreFile="/home/bitnami/KeyStore.jks" keystorePass="passwordhere" sslProtocol="TLS"/>
然后apache已经重启了。我收到的浏览器错误是:
Chrome:
uses an unsupported protocol. ERR_SSL_VERSION_OR_CIPHER_MISMATCH
火狐:
no common encryption algorithm(s). Error code: SSL_ERROR_NO_CYPHER_OVERLAP
我的想法
基于这个 Stack Overflow 问题 我认为这可能与 RSA 有关 - 当我使用 -keyalg RSA
参数生成新的密钥库时:
$JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA
并将 Tomcat server.xml
SSL 配置指向该网站通过 HTTPS 加载,我在浏览器中收到警告,告诉我这是一个自签名证书。
如果您想使用 OpenSSL 生成,则必须将私钥和证书链 不仅仅是证书 转换为 Java -可用的密钥库,PKCS12 或 JKS。
如果要使用 Java 生成,请使用 keytool -genkeypair -keyalg RSA
(并在 j7 之前添加 -keysize 2048
),然后使用 然后 Java keytool
生成您提供给 CA (Comodo) 的 CSR,然后您使用 Java keytool
从 CA 导入新证书及其链。
查看 (my) 中的选项 以及那里链接的其他几个骗局。
我正在尝试使用我在 AWS Bitnami 上托管的域设置 TLS (SSL),以便用户可以通过 HTTPS 访问它。它 运行 在 Apache Tomcat 上是独立的,没有 LB 前端。
要生成证书签名请求 (CSR),我有:
sudo openssl genrsa -out /opt/bitnami/apache-tomcat/conf/server.key 2048
并输入所有正确的信息,即 www.hostname.com 格式的主机名,然后:
sudo openssl req -new -key /opt/bitnami/apache-tomcat/conf/server.key -out /opt/bitnami/apache2/conf/cert.csr
随后我将 .csr 文件内容复制到 CA (ssl.comodo.com) 并保存生成的文件:.ca-bundle 和 .crt 文件。
之后我将文件上传到 Tomcat 目录并将它们加载到 Java 密钥库中:
keytool -import -trustcacerts -alias root -file www_domainname_com.ca-bundle -keystore KeyStore.jks
和.crt:
keytool -import -trustcacerts -alias tomcat -file www_domainname_com.crt -keystore KeyStore.jks
Tomcat 在 server.xml
中配置为使用此密钥库和以下配置:
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" keystoreFile="/home/bitnami/KeyStore.jks" keystorePass="passwordhere" sslProtocol="TLS"/>
然后apache已经重启了。我收到的浏览器错误是:
Chrome:
uses an unsupported protocol. ERR_SSL_VERSION_OR_CIPHER_MISMATCH
火狐:
no common encryption algorithm(s). Error code: SSL_ERROR_NO_CYPHER_OVERLAP
我的想法
基于这个 Stack Overflow 问题 -keyalg RSA
参数生成新的密钥库时:
$JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA
并将 Tomcat server.xml
SSL 配置指向该网站通过 HTTPS 加载,我在浏览器中收到警告,告诉我这是一个自签名证书。
如果您想使用 OpenSSL 生成,则必须将私钥和证书链 不仅仅是证书 转换为 Java -可用的密钥库,PKCS12 或 JKS。
如果要使用 Java 生成,请使用 keytool -genkeypair -keyalg RSA
(并在 j7 之前添加 -keysize 2048
),然后使用 然后 Java keytool
生成您提供给 CA (Comodo) 的 CSR,然后您使用 Java keytool
从 CA 导入新证书及其链。
查看 (my) 中的选项