`
wuzijingaip
  • 浏览: 330016 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

启用 Tomcat 下的 HTTPS/java 证书签证

阅读更多
仅供备忘。

在 Tomcat 5.0 中启用 HTTPS 的连接。

重要提示:两种容易出错的情况
1、keystore的密码与tomcat的主密码不一致;在接下来的步骤中,请把这两个密码输入成相同的;
2、用来生成keystore的java版本与运行tomcat的java版本不一致;运行下面的命令之前,先检查一下。
wakan@wakan:~/tomcat2/bin>which java
/home/jdk150/bin/java
在启动tomcat时,看看所用的JAVA_HOME是不是上面的/home/jdk150,如果不是,请修改用户的profile文件,或者修改tomcat的启动文件。
最简单的做法是在/etc/profile文件中加入下面几行,然后重新登录,再进行后续操作:
JAVA_HOME=/home/jdk150
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME PATH

一、生成 KeyStore

这一步比较简单,利用 JDK 自带的 keytool 即可完成。命令如下:

wakan@wakan:~/tomcat2/bin> keytool -genkey -alias tomcat -keyalg RSA
输入keystore密码:  ************
您的名字与姓氏是什么?
  [Unknown]:  aaa
您的组织单位名称是什么?
  [Unknown]:  bbb
您的组织名称是什么?
  [Unknown]:  ccc
您所在的城市或区域名称是什么?
  [Unknown]:  BeiJing
您所在的州或省份名称是什么?
  [Unknown]:  BeiJing
该单位的两字母国家代码是什么
  [Unknown]:  CN
CN=aaa, OU=bbb, O=ccc, L=BeiJing, ST=BeiJing, C=CN 正确吗?
  [否]:  是

输入<tomcat>的主密码
        (如果和 keystore 密码相同,按回车):

特别说明:上边输入的“<tomcat>的主密码”,与keystore密码一定要相同,否则TOMCAT起不来。至少我试了几次都不行。报错如下:
2007-3-26 17:07:01 org.apache.coyote.http11.Http11BaseProtocol init
严重: Error initializing endpoint
java.io.IOException: Cannot recover key
        at org.apache.tomcat.util.net.jsse.JSSE14SocketFactory.init(JSSE14Socket Factory.java:125)

二、修改 server.xml

在 TOMCAT/conf/server.xml 中,修改与 SSL 相关的那一段,我改成下面这样:
    <!-- Define a SSL HTTP/1.1 Connector on port 8443 -->
    <Connector port="8443" maxHttpHeaderSize="8192"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" disableUploadTimeout="true"
               acceptCount="100" scheme="https" secure="true" keystorePass="******"
               clientAuth="false" sslProtocol="TLS"
/>

这里要指定keystorePass,如果写错了,会出现下边的错误:
严重: Error initializing endpoint
java.io.IOException: Keystore was tampered with, or password was incorrect
        at sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:768)

三、启动 Tomcat

这一步比较简单,就不多说了。启动完成后,在浏览器中输入:https://localhost:8443,即可看到TOMCAT的主页面。

wakan@wakan:~/tomcat2/bin> ./startup.sh
Using CATALINA_BASE:   /home/wakan/tomcat2
Using CATALINA_HOME:   /home/wakan/tomcat2
Using CATALINA_TMPDIR: /home/wakan/tomcat2/temp
Using JRE_HOME:       /home/jdk150/jre
2007-3-26 17:09:39 org.apache.catalina.core.AprLifecycleListener lifecycleEvent










利用keytool产生自签证书的步骤2如下:

第一步,用-genkey命令选项,产生公私密钥对。在控制台界面输入:keytool -genkey -alias testkeypair -keyalg RSA -keysize 1024 -sigalg MD5withRSA。这里的-alias表示使用这对公私密钥产生新的keystore入口的别名(keystore是用来存放管理密钥对和证书链的,缺省位置是在使用者主目录下,以.keystore为名的隐藏文件,当然也可指定某个路径存放.keystore文件);-keyalg是产生公私钥对所用的算法,这里是RSA;-keysize定义密钥的长度;-sigalg是签名算法,选择MD5withRSA,即用RSA签名,然后用MD5哈希算法摘要。接下来,系统会提示进行一些输入:

输入keystore密码:  abc123
            您的名字与姓氏是什么?
            [Unknown]:  Li
            您的组织单位名称是什么?
            [Unknown]:  InfosecLab
            您的组织名称是什么?
            [Unknown]:  InfosecLab Group
            您所在的城市或区域名称是什么?
            [Unknown]:  Beijing
            您所在的州或省份名称是什么?
            [Unknown]:  Beijing
            该单位的两字母国家代码是什么
            [Unknown]:  CN
            CN=Li, OU=InfosecLab, O=InfosecLab Group, L=Beijing, ST=Beijing, C=CN 正确吗?
            [否]:  y
            输入 <testkeypair>的主密码 (如果和 keystore 密码相同,按回车):



第二步,产生自签证书,输入以下命令:

keytool -selfcert -alias testkeypair -dname "CN=Li, OU=InfosecLab, O=InfosecLab
            Group, L=Beijing, ST=Beijing, C=CN"
            输入keystore密码:  abc123



第三步,导出自签证书,由上面两步产生的证书,已经存放在以“testkeypair”为别名的keystore入口了,如果使用其文件,必须导出证书。输入:

keytool -export -rfc -alias testkeypair -file mycert.crt
            输入keystore密码:  abc123
            保存在文件中的认证 <mycert.crt>



这样,就得到了一个自签的证书mycert.crt。注意,选项rfc是把证书输出为RFC1421定义的、用Base64最终编码的格式。
分享到:
评论

相关推荐

    详解如何给Tomcat配置Https/ssl证书

    Tomcat,作为一个流行的Java Servlet容器,也提供了配置HTTPS和SSL证书的能力,以确保通过其服务的数据传输是加密且安全的。本文将详细介绍如何为Tomcat配置HTTPS和SSL证书。 首先,让我们了解SSL证书的基本概念。...

    tomcat https 证书安装

    在Tomcat中启用HTTPS,我们需要一个有效的数字证书来标识服务器的身份。 证书申请通常分为以下几步: 1. **生成私钥**:首先,你需要在服务器上生成一对密钥,即公钥和私钥。在Tomcat中,可以使用Java的keytool...

    keytool+tomcat配置HTTPS双向证书认证

    Keytool+Tomcat配置HTTPS双向证书认证 Keytool 是 Java 中的一个命令行工具,用于生成和管理数字证书。Tomcat 是一个流行的 Web 服务器,可以使用 SSL/TLS 加密来保护数据传输。下面是使用 Keytool 生成证书和配置 ...

    tomcat 实现https 双向认证通信

    本文主要介绍如何在Linux平台上,使用Apache Tomcat、OpenSSL以及Java Keytool来实现HTTPS通信,并进一步完成双向认证的功能。文章假设读者具备基本的Linux操作技能以及对Tomcat有一定的了解。 #### 环境配置 - **...

    Apache Tomcat 8.5的安装配置 、JDK 1.8的安装

    Apache Tomcat 8.5是流行的开源Web应用服务器,它用于部署Java Servlets和JavaServer Pages (JSP)。在本文中,我们将详细介绍如何在Linux系统上安装和配置Apache Tomcat 8.5以及JDK 1.8。 首先,让我们来安装JDK ...

    tomcat启用https

    Tomcat作为一款流行的Java应用服务器,支持通过配置启用HTTPS服务。本文将详细介绍如何在Tomcat环境中启用HTTPS,并使用JDK自带的`keytool`工具制作自签名证书。 #### 二、HTTPS 原理简述 HTTPS 是 HTTP 协议的...

    openSSL生成证书以及在tomcat下的配置

    "openSSL生成证书以及在tomcat下的配置" openSSL是目前最流行的开源加密库之一,它提供了安全的数据传输和认证机制。在Web应用程序中,openSSL广泛应用于生成数字证书和私钥,从而确保数据的安全传输。今天,我们将...

    在tomcat中实现https安全连接的方法

    为了在Tomcat中启用SSL支持,需要创建一个自签名证书。以下步骤展示了如何在Tomcat中设置SSL证书: 1. **生成证书**:使用`keytool`命令工具来生成证书。命令如下: ```bash %JAVA_HOME%\bin\keytool -genkey -...

    Tomcat-https配置

    2. **安装证书**:将证书导入到Tomcat的信任库中,通常为`$JAVA_HOME/jre/lib/security/cacerts`。使用`keytool`命令进行操作。 3. **配置Server.xml**:打开Tomcat的主配置文件`conf/server.xml`,找到`...

    tomcat6启用SSL_证书_tomcat6多ssl_Tomcat6;SSL;_

    本文将深入探讨如何在Tomcat 6上启用SSL,并生成及配置服务器证书。 首先,了解SSL的基本概念。SSL是一种网络安全协议,它通过加密通信,保护网络数据免受窃听和篡改。在HTTP之上使用SSL,我们得到的就是HTTPS,这...

    tomcat,https加密方式(jsse.openssl)

    在本文档中,我们重点介绍了如何利用 JSSE(Java Secure Socket Extension)为 Tomcat 实现 HTTPS 加密。这种方法是通过配置 Java 的内置 SSL/TLS 库来实现的,适用于希望使用 Java 本身提供的安全套接字功能的用户...

    tomcat支持https配置

    标题中的“Tomcat支持HTTPS配置”是指在Apache Tomcat服务器上启用安全套接层(SSL)协议,以提供加密通信和身份验证。这通常涉及到在Web应用中使用HTTPS(HTTP over SSL/TLS)协议,以保护用户的敏感信息,如登录...

    Java发https请求证书问题

    - 以上两行代码的作用是告诉 Java 虚拟机信任 `tomcat.keystore` 中的证书,并使用指定的密码访问密钥库。 5. **发送 HTTPS 请求**: - 使用上述配置后的环境发送 HTTPS 请求,此时应该能正确地与服务器建立安全...

    使用JavaServiceWrapper设置tomcat作为linux服务并且开机自动启动.pdf

    将Java Service Wrapper的相关文件复制到Tomcat目录下: - `wrapper/src/bin/sh.script.in` → `/opt/tomcat/bin/tomcat` - `wrapper/src/conf/wrapper.conf.in` → `/opt/tomcat/conf/wrapper.conf` - `wrapper...

    tomcat发送https请求配置

    在本文中,我们将介绍如何配置 Tomcat 来发送 HTTPS 请求,包括生成 JKS 文件、导出证书文件、配置 Tomcat 以启用 HTTPS 等操作。 生成 JKS 文件 在开始之前,我们需要使用 keytool 工具来生成 Keystore 和 Trust...

    tomcat 发布ios下载安装 和证书部署

    3. 信任证书:进入设置 &gt; 通用 &gt; 关于本机 &gt; 证书信任设置,找到刚刚安装的证书,启用“信任”开关。 通过以上步骤,你已经在iOS设备上成功部署了Tomcat并完成了证书安装,从而可以安全地通过HTTPS访问Tomcat服务器...

    apache-tomcat-8.0.20

    Apache Tomcat 8.0.20 是一个广泛使用的开源软件,它是一个实现了Java Servlet、JavaServer Pages(JSP)和Java EE的Web应用程序容器。这个版本是Tomcat服务器的一个重要分支,它提供了对Java技术的高效且轻量级的...

    keytool+tomcat配置HTTPS双向证书认证结合web实例

    ### keytool+Tomcat配置HTTPS双向证书认证结合Web实例 #### 概述 本文将详细介绍如何使用`keytool`工具配合Tomcat服务器实现HTTPS双向证书认证,并通过具体示例加以说明。该方案主要应用于需要对访问来源进行严格...

    tomcat7/8/9.zip

    Apache Tomcat是一款广泛使用的开源Java Servlet容器,它实现了Java Servlet和JavaServer Pages(JSP)规范,让开发者能够部署和运行基于Java的Web应用程序。 【描述】中的内容提示我们,这个压缩包提供了这三个...

Global site tag (gtag.js) - Google Analytics