zoukankan      html  css  js  c++  java
  • tomcat7+jdk的keytool生成证书 配置https

    目前只会使用jdk的keytool来生成证书。本文仅介绍这种方法。

    1Windows下:

    1.1 生成keystore文件及导出证书

    打开控制台:

    运行:

    %JAVA_HOME%inkeytool -genkey -alias tomcat -keyalg RSA

    按照要求一步步的输入信息,问你国家/地区代码的时候,输入cn。

    输入密码的时候,这里使用:changeit

    最后一步让你输入的时候,直接回车。

    具体记录如下:

    C:UsersAdministrator>%JAVA_HOME%inkeytool -genkey -alias tomcat -keyalg RSA

    输入密钥库口令:
    再次输入新口令:
    您的名字与姓氏是什么?
    [Unknown]: tuhao
    您的组织单位名称是什么?
    [Unknown]: tuhaojia
    您的组织名称是什么?
    [Unknown]: fnic
    您所在的城市或区域名称是什么?
    [Unknown]: didu
    您所在的省/市/自治区名称是什么?
    [Unknown]: didu
    该单位的双字母国家/地区代码是什么?
    [Unknown]: cn
    CN=tuhao, OU=tuhaojia, O=fnic, L=didu, ST=didu, C=cn是否正确?
    [否]: y

    输入 <tomcat> 的密钥口令
    (如果和密钥库口令相同, 按回车):

      这里你要直接按回车。

    完毕后会在当前目录下,会产生一个:.keystore文件,将它拷贝到tomcat的bin目录下。

    从控制台进入tomcat的bin目录,本机环境是:D:Tomcat7in>

    导出证书文件:

    D:Tomcat7in>keytool -selfcert -alias tomcat -keystore .keystore
    输入密钥库口令:(此处为上面生成证书时输入的changeit)

    D:Tomcat7in>keytool -export -alias tomcat -keystore .keystore -storepass changeit -rfc -file tomcat.cer

    存储在文件 <tomcat.cer> 中的证书

    此时会在D:Tomcat7in>下生成tomcat.cer证书文件。将该文件发给使用者,让他们安装该证书,并将证书安装在“受信任的根证书颁发机构”区域中。具体的操作步骤可以参照铁道部12306.cn网站证书的安装步骤。它们是一样一样一样的。

    1.2 配置tomcat

    打开$CATALINA_BASE/conf/server.xml 找到“SSL HTTP/1.1 Connector” 那一块,取消注释并将它改成:

    <Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"

    maxThreads="150" scheme="https" secure="true"
    keystoreFile="bin/.keystore" keystorePass="changeit" 
    clientAuth="false" sslProtocol="TLS" />

    请注意,这里我已经将tomcat的端口改成了80,相应的,https的端口我也改成了443(即默认的https端口)。

    修改windows机器的host文件,增加一行(我的机器的ip是192.168.68.75):

    192.168.68.75 tuhao

     接下来重启tomcat,用https://tuhao/访问网站验证一下就行了。

    接下来将演示linux下配置tomcat的https。

    2.linux下设置:

    2.1生成keystore文件及导出证书

    这一步和在windows下操作差不多,只是环境变量的引用方式不一样,并且,这次我们指定生成的文件存储的目录:

     

    [root@localhost ~]# $JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA -keystore /usr/local/tomcat/bin/.keystore
    输入keystore密码: 
    再次输入新密码: 
    您的名字与姓氏是什么?
    [Unknown]: tuhao.com
    您的组织单位名称是什么?
    [Unknown]: tuhaojia
    您的组织名称是什么?
    [Unknown]: fnic
    您所在的城市或区域名称是什么?
    [Unknown]: didu
    您所在的州或省份名称是什么?
    [Unknown]: didu
    该单位的两字母国家代码是什么
    [Unknown]: cn
    CN=tuhao.com, OU=tuhaojia, O=fnic, L=didu, ST=didu, C=cn 正确吗?
    [否]: y

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

    在这里直接敲回车


    [root@localhost ~]# cd /usr/local/tomcat/bin/
    [root@localhost bin]# keytool -selfcert -alias tomcat -keystore .keystore
    输入keystore密码: 
    [root@localhost bin]# keytool -export -alias tomcat -keystore .keystore -storepass changeit -rfc -file tomcat.cer
    保存在文件中的认证 <tomcat.cer>

    将 /usr/local/tomcat/bin/tomcat.cer拷贝到本地。

    2.2 配置tomcat:

    这一步和windows一样,我就直接把windows的那部分拷贝过来了:

    打开$CATALINA_BASE/conf/server.xml 找到“SSL HTTP/1.1 Connector” 那一块,取消注释并将它改成:

    <Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"

    maxThreads="150" scheme="https" secure="true"
    keystoreFile="bin/.keystore" keystorePass="changeit" 
    clientAuth="false" sslProtocol="TLS" />

    请注意,这里我已经将tomcat的端口改成了80,相应的,https的端口我也改成了443(即默认的https端口)。

    接下来是要设置防火墙,我试过增加tcp的443端口,允许访问,但是外面依然无法访问这台服务器的https,干脆我将iptables服务停止掉,这样就可以了。

    验证是否配置成功:

    重启tomcat,修改windows机器的host文件,增加一行(linux机器的ip是192.168.68.74):

    192.168.68.74 tuhao.com

    然后安装tomcat.cer,注意,一定要安装在“受信任的根证书颁发机构”这个区域里。

    通过浏览器访问:https://tuhao.com/ 就可以看到https被认为是可信的了。

    总结:

    生成证书的时候,“您的名字与姓氏是什么”  一定要注意输入你的ip、机器名、域名,总之,你希望以后通过https://xx来访问你的网站的话,此处就要填写xx。否则,会有证书不受信的提示。

  • 相关阅读:
    深入浅出聊优化:从Draw Calls到GC
    关于Unity中植物树木烘焙后没有影子的解决方法
    Marvelous Designer 服装设计与模拟
    DAZ studio 4.9基础
    在下载SOPC代码的过程中遇到的一些错误
    开发工程师人生之路
    简易信号发生器的设计
    HDU A Simple Math Problem (矩阵快速幂)
    HDU Queuing (递推+矩阵快速幂)
    POJ 3233 Matrix Power Series(矩阵快速幂)
  • 原文地址:https://www.cnblogs.com/owenma/p/6134084.html
Copyright © 2011-2022 走看看