我正在尝试使用服务器上的SSL配置tomcat(因为我需要通过https发出请求)。 我按照这些步骤 - : 1)。生成密钥库
$Tomcat\bin>keytool -genkey -alias mkyong -keyalg RSA -keystore
c:\mkyongkeystore
Enter keystore password:
Re-enter new password:
What is your first and last name?
[Unknown]: yong mook kim
What is the name of your organizational unit?
//omitted to save space
[no]: yes
Enter key password for <mkyong>
(RETURN if same as keystore password):
Re-enter new password:
$Tomcat\bin>
2)。通过在server.xml中添加连接器来使用密钥库配置tomcat
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="/var/lib/tomcat7/webapps/key/mykeystore"
keystorePass="password" />
然后我试图打开https://[host]:8443/ 但它仍然显示此页面无法显示
答案 0 :(得分:0)
以下是有关设置HTTPS的Tomcat文档的一些引用:
Tomcat可以使用两种不同的SSL实现:
作为Java运行时的一部分提供的JSSE实现(自1.4起)
APR实现,默认使用OpenSSL引擎。
...由于SSL支持的配置属性在APR与JSSE实现之间存在显着差异,因此建议避免自动选择实现。它是通过在Connector的协议属性中指定一个类名来完成的。
要定义Java(JSSE)连接器,无论是否加载了APR库,请使用以下方法之一:
<!-- Define a HTTP/1.1 Connector on port 8443, JSSE NIO implementation --> <Connector protocol="org.apache.coyote.http11.Http11NioProtocol" port="8443" .../>
我对此的理解是你应该尝试使用类名作为协议属性:
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
SSLEnabled="true" maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="/var/lib/tomcat7/webapps/key/mykeystore"
keystorePass="password" />
答案 1 :(得分:-1)
我认为您可以将tomcat端口重定向到IIS,在IIS中您可以轻松启用HTTPS。
https://tomcat.apache.org/connectors-doc/webserver_howto/apache.html