在服务器上使用SSL配置Tomcat

时间:2016-06-15 11:12:50

标签: java tomcat ssl server tomcat7

我正在尝试使用服务器上的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/ 但它仍然显示此页面无法显示

但是当我为localhost尝试相同的方法时,它工作了。 为什么它不在服务器上工作 WEB PAGE

enter image description here

2 个答案:

答案 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