Tomcat SSL加密与基于域名的虚拟主机

Posted elin菻

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Tomcat SSL加密与基于域名的虚拟主机相关的知识,希望对你有一定的参考价值。

Tomcat SSL加密与基于域名的虚拟主机

创建加密用的私钥和证书文件
[root@localhost ~]# keytool -genkeypair -alias tomcat -keyalg RSA -keystore /usr/local/tomcat8/keystore
输入密钥库口令: 
再次输入新口令:
您的名字与姓氏是什么?
  [Unknown]:  crushlinux
您的组织单位名称是什么?
  [Unknown]:  cloud
您的组织名称是什么?
  [Unknown]:  cloud
您所在的城市或区域名称是什么?
  [Unknown]:  beijing
您所在的省/市/自治区名称是什么?
  [Unknown]:  haidian
该单位的双字母国家/地区代码是什么?
  [Unknown]:  CN
CN=crushlinux, OU=cloud, O=cloud, L=beijing, ST=haidian, C=CN是否正确?
  [否]:  y
输入 <tomcat> 的密钥口令
 (如果和密钥库口令相同, 按回车): 
再次输入新口令:
[root@localhost ~]# ls /usr/local/tomcat8/
bin              keystore  NOTICE         temp
BUILDING.txt     lib       README.md      webapps
conf             LICENSE   RELEASE-NOTES  work
CONTRIBUTING.md  logs      RUNNING.txt
[root@localhost ~]# vim /usr/local/tomcat8/conf/server.xml
去掉注释:
87    
88     <Connector port="8443" protocol="org.apache.co    yote.http11.Http11NioProtocol" 89                maxThreads="150" SSLEnabled="true">
 90         <SSLHostConfig> 91             <Certificate certificateKeystoreFile="    conf/localhost-rsa.jks" 92                          type="RSA" />
 93         </SSLHostConfig>
 94     </Connector>
 95    
····························添加以下内容
       <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="/usr/local/tomcat8/keystore" KeystorePass="123456">
      <!--  <SSLHostConfig>
            <Certificate certificateKeystoreFile="conf/localhost-rsa.jks"
                         type="RSA" />
        </SSLHostConfig>-->
    </Connector>
································································
[root@localhost ~]# /usr/local/tomcat8/bin/shutdown.sh
[root@localhost ~]# /usr/local/tomcat8/bin/startup.sh
[root@localhost ~]# netstat -lnpt |grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN      13984/java         
[root@localhost ~]# tail -f /usr/local/tomcat8/logs/catalina.2019-11-23.log
23-Nov-2019 13:57:21.196 信息 [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["https-jsse-nio-8443"]
在浏览器中进行访问192.168.200.66:8443

在浏览器中进行访问http://192.168.200.66:8443

 

 

 

 

------=======================================

tomcat虚拟主机
虚拟主机主要用于一台物理机上搭建多个web站点,每个web站点独立运行,互不干扰,这些站点就是“虚拟主机”。
=====
基于域名的虚拟主机:
多个域名解析到同一个IP地址,在web服务器里添加多个站点,每个站点设定一个主机名。http协议请求里包含了主机名信息,
当web服务器收到访问请求时,就可以根据不同主机名来访问不同网站。
【1】打开windows :   C:\\Windows\\System32\\drivers\\etc  修改hosts文件

 

 在windows终端中进行测试

 

配置域名与IP的映射管理
对于本地局域网我们使用在host文件中添加。对于大型网络或者外网网路则需要配置DNS服务器中IP地址与域名的映射关系。
修改server.html          //还原主配置文件
[root@localhost ~]# cd /usr/local/tomcat8/conf/
[root@localhost conf]# ls
Catalina              logging.properties
catalina.policy       server.xml
catalina.properties   server.xml.bak
context.xml           tomcat-users.xml
jaspic-providers.xml  tomcat-users.xsd
jaspic-providers.xsd  web.xml
[root@localhost conf]# cp server.xml.bak server.xml
cp:是否覆盖"server.xml"? y
[root@localhost conf]# /usr/local/tomcat8/bin/shutdown.sh
[root@localhost conf]# /usr/local/tomcat8/bin/startup.sh
[root@localhost conf]# tail -f /usr/local/tomcat8/logs/catalina.2019-11-23.log
在浏览器进行测试192.168.200.66:8080

 

`````````````````
修改server.html 文件   //找到Host 修改里面的内容,把注释的东西删去,并添加修改,内容如下
<Host name="www.a.com"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
        <Context docBase="/web/a" path="" reloadable="flase" />  //添加
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
      </Host>
      <Host name="www.b.com"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
        <Context docBase="/web/b" path="" reloadable="flase" />//添加并修改为b 注意下面的图片中没有修改
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
      </Host> 

保存退出

[root@localhost conf]# mkdir /web/{a,b}
[root@localhost conf]# ls /web/
a  b  webapp
[root@localhost conf]# vim /web/a/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
        <head>
                <title>JSP test page</title>
        </head>
        <body>
                <% out.println("welcome to test site,http://www.a.com");%>
        </body>
</html>
保存退出
[root@localhost conf]# cp /web/a/index.jsp /web/b/
[root@localhost conf]# vim /web/b/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
        <head>
                <title>JSP test page</title>
        </head>
        <body>
                <% out.println("welcome to test site,http://www.b.com");%>
        </body>
</html>
保存退出
[root@localhost conf]# /usr/local/tomcat8/bin/shutdown.sh
[root@localhost conf]# /usr/local/tomcat8/bin/startup.sh
[root@localhost conf]# tail -f /usr/local/tomcat8/logs/catalina.2019-11-23.log
在浏览器中访问www.a.com:8080   www.b.com:8080

 

 

 

结束!!

!!!!!!!!!!!!!!!!!!!!!!!!! 

 

基于IP地址的虚拟主机

服务器使用多网卡配置多个IP地址,然后配置web服务器,把多个网站绑定在不同的IP上,(该方式浪费ip资源,tomcat不支持该方式)

 

 

 

以上是关于Tomcat SSL加密与基于域名的虚拟主机的主要内容,如果未能解决你的问题,请参考以下文章

Nginx安装与升级 Nginx服务器 Nginx虚拟主机 HTTPS加密网站

使用Tomcat搭建基于域名的虚拟机

Apache虚拟目录用户认证基于端口/IP/域名的虚拟主机SSL

Tomcat-8.5.23 基于域名和端口的虚拟主机

Tomcat实现基于域名的多虚拟主机

13_搭建Nginx服务器配置网页认证基于域名的虚拟主机ssl虚拟主机