Java 在服务器上使用SSL配置Tomcat

Java 在服务器上使用SSL配置Tomcat,java,tomcat,ssl,server,tomcat7,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? [Unkno

我试图在服务器上用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>
$Tomcat\bin>keytool-genkey-alias mkyong-keyalg RSA-keystore
c:\mkyongkeystore
输入密钥库密码:
重新输入新密码:
你的名字和姓氏是什么?
[未知]:金永木
您的组织单位名称是什么?
//省略以节省空间
[否]:是的
输入的密钥密码
(如果与密钥库密码相同,则返回):
重新输入新密码:
$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" />

然后我试着打开门 但它仍然显示此页面无法显示

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


我认为最好将tomcat端口重定向到IIS,在IIS中可以轻松启用HTTPS


以下是Tomcat文档中关于设置HTTPS的一些引用:

Tomcat可以使用两种不同的SSL实现:

作为Java运行时的一部分提供的JSSE实现(从1.4开始)
APR实现,默认情况下使用OpenSSL引擎。

由于SSL支持的配置属性在APR和JSSE实现之间存在显著差异,建议避免自动选择实现。这是通过在连接器的协议属性中指定类名来完成的

要定义Java(JSSE)连接器,无论是否加载APR库,请使用以下选项之一:


我的理解是,您应该尝试为协议属性使用类名:



您将SSL配置添加到正在侦听端口8080的连接器,并尝试访问端口8443上的tomcat?那不行。如果不需要支持HTTPS和HTTP连接,可以为SSL的另一个端口(f.e.8443)添加第二个连接器,或者使用8080。这只是一个打印错误。很抱歉,您是否有防火墙阻止远程访问端口8443?也可能是另一个进程已经在侦听8443。如果是这种情况,tomcat日志中应该有一个错误。这是我的主要问题,但在最初的帖子中,我从shell命令中得到了一条注释,用SSLAny建议@user1516873配置端口。我猜@Mudit在Windows上不起作用……这只是一个有问题的打印错误。这与我在localhost上使用的东西及其工作原理相同。但在其服务器上,不是:(\
<!-- Define a HTTP/1.1 Connector on port 8443, JSSE NIO implementation -->
<Connector protocol="org.apache.coyote.http11.Http11NioProtocol"
       port="8443" .../>