Centos下搭建 tomcat https服务器详解

一 、安装java jdk配置环境变量

   1、 卸载原有openjdk(非常重要!!)

     yum -y remove java-1.7.0-openjdk*    

   2、 下载新的jdk 并解压

       [[email protected] java]# curl -O http://download.oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x64.tar.gz 

       [[email protected] java]# tar -zxvf jdk-7u79-linux-x64.tar.gz

    关于下载jdk 方式其实很多,你可以通过指令或则是 ftp在本地下载后上传到centos上去。

    3、 配置环境变量

     vim /etc/profile 通过该指令进入到java配置设置文件下,按i进入编辑状态,然后在该文件的最后输入下面的代码。java环境变量配置完成

     #set java environment

     JAVA_HOME=/usr/java/jdk1.7.0_79

     JRE_HOME=/usr/java/jdk1.7.0_79/jre

     CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib

     PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

      export JAVA_HOME JRE_HOME CLASS_PATH PATH

      完毕后退出  [[email protected] java]# source /etc/profile(让刚才修改的配置生效)

      然后你可以输入  java -version你可以看到你最新搭建的环境变量

 

   二 、创建https访问证书,增加证书到tomcat配置

        1、 创建证书

          首先进入JAVA_HOME的bin目录下输入如下代码:

             cd /usr/java/jdk1.7.0_79/bin/

             keytool -genkey -alias tomcat -keyalg RSA -keystore /usr/local/tomcat/tomcat.keystore -validity 36500 

#####   别名tomcat     存放路径/usr/local/tomcat/tomcat.keystore    有效期36500天

            Enter keystore password: #此处需要输入大于6个字符的字符串

           Re-enter new password:

             What is your first and last name? #“您的名字与姓氏是什么?”   这是必填项,域名 或者IP,不需要http://

           [Unknown]: 10.15.24.254   

          What is the name of your organizational unit?   #“你的组织单位名称是什么?”可以按照需要填写也可以不填写直接回车,实验中直接回车

         [Unknown]:

         What is the name of your organization?#“您的组织名称是什么?”,同上直接回车

        [Unknown]:

        What is the name of your City or Locality? #“您所在城市或区域名称是什么?,同上直接回车

        [Unknown]:

        What is the name of your State or Province? #“您所在的州或者省份名称是什么?”

         [Unknown]:

         What is the two-letter country code for this unit? #“该单位的两字母国家代码是什么?”

          [Unknown]:

        Is CN=10.15.24.254, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown correct? #系统询问“正确           吗?”时,对照输入信息,如果符合要求则使用键盘输入字母“y”,否则输入“n”重新填写上面的信息

         [no]: y

         Enter key password for
       (RETURN if same as keystore password): #输入的主密码,这项较为重要,会在tomcat配置文件中使用,建议输入与keystore的密码一致,设置其它密码也可以

        Re-enter new password:

 2、修改tomcat的server.xml配置文件,使其支持https

     cd /tomcat/conf/  

     vim server.xml

     增加https的节点配置,下面这个节点在 server.xml中是存在的,但是被注释掉了,你将注释取消后,增加两个属性,一个是证书路径,一个是证书密码即可。

   Centos下搭建 tomcat https服务器详解

 

   三 、防火墙端口配置  

           vim /etc/sysconfig/iptables进入端口设置文件编辑状态

           这里要注意一下centos有的版本没有iptables文件,如果没有就需要自己创建一个 

          创建方法:cd /etc/sysconfig/

          然后执行:iptables -P OUTPUT ACCEPT  

                         service iptables save  

                         service iptables restart 

创建完毕后再运行:    vim /etc/sysconfig/iptables

       Centos下搭建 tomcat https服务器详解

tomcat中对http访问设置的端口是8080,这里我没设置该端口所以http访问方式作废。只能访问https,tomcat中https的默认设置端口是8443

但是https自默认端口是443所以只要将tomcat中的8443修改为443就可以直接在ip前面加上https://ip直接访问。

 

 

   四、搭建中遇到的坑

  我这里使用的centos服务器是6.5版本,系统自带了openjdk 1.7.*,第一步中要卸载系统自带的openjdk的原因是因为openjdk下的 toolkey生成的证书,是无效证书,无法访问https,你可以使用 curl -v  https://ip运行之后等一会出现错误编号,然后可以打开:http://www-archive.mozilla.org/projects/security/pki/nss/ref/ssl/sslerr.html 进行对比查询。就因为这openjdk搞得我多次重次h环境,之后突然想到可能会是这个原因,网上一查真有人说 了。

 yum update nss 升级nss,不管你是哪个版本的centos你最后都执行下这句代码。否则你通过

curl访问ip会遇到  NSS ERROR -59990

 五、证书安装:重启浏览器,发现------没有红色警告了!!!

Centos下搭建 tomcat https服务器详解