使用阿里云域名 服务器 Tomcat7 阿里云免费证书 Http转Https以及Https表单提交问题 搭建网站全过程及其踩的坑

て烟熏妆下的殇ゞ 提交于 2019-12-02 03:13:47

一天的时间才搭完累死了!

我在这里主要记录一下,每个修改的意义.如果只是修改而不知道修改的意义我觉得下次还是不会!

云服务器本地使用Http协议访问Tomcat不用输入端口号

这里我已经在阿里云上购买了服务器及域名,并且域名已经备案.

1.登录阿里云服务器.

2.在服务器中下载或者使用你的电脑远程传递一个Tomcat7给服务器.

3.在Tomcat7--conf--server.xml里修改.找到一个port是8080的

你可以直接复制下面,然后ctrl  f  搜索

<Connector port="8080

将port改为80,类似这样

在这里,我们的云服务器上,输入localhost就可以直接访问tomcat了,但是其他电脑还不行!

个人电脑通过域名访问云服务器Tomcat

这里接着,上边已经配置好了云服务器上的Tomcat的端口号问题.

我们登录阿里云准备解析域名,

其他的服务器提供商都有解析域名的功能,功能大同小异.

进入域名控制台,怎么进入域名控制台不用说吧,不行就在阿里云官网上的搜索框搜索

点击解析

添加记录

一般只填框起来的这两个选项就行,第一个框写www,代表我们可以通过www.xxx.xx访问某个网站了

再添加记录一次,写一个@,这样我们就可以xxx.xxx访问某个网站了.

我们做完了这一步后,理论上只要别人一输入你的域名,就会默认的找到你的云服务器的80端口了,而我们在上边已经设置了Tomcat的监听端口为80.所以就会找我们的Tomcat了!

访问域名直接跳到项目页面

想不想,别人一输入你的域名不是跳到tomcat的那个页面而是跳到你的项目的主页?

打开server.xml,修改下图的几处,修改成什么,应该不用我说吧

然后在server.xml,下图的这个位置加上一句话,最好自己敲哈.这句话的意思大概就是设置默认是那个项目,

那个docBase属性里的值要写你自己的项目名称哈,别写我的cuzu_server.如果你从别的博文那里也看到要加这个Context,但是当你加了之后运行Tomcat闪退的话,八成是Context这个标签没有关闭,就类似这样的<Context 属性......>,反正我踩过这个坑!

这里如果我没记错的话,应该已经可以访问了,但是有的就不行,比如说我踩的坑.

是这样的,我配置完这些,一访问就是一个空白页.后来才知道原因,其实我已经配置完成了.但是默认要访问那个页面那里设置错了

这里提一下,我们设置默认访问那个页面在Tomcat中有两处可以设置,至少我就知道两处.

一处是Tomcat--conf--web.xml

一处是项目--WEB-INF--web.xml

这里,如果两处都设置了默认页面,根据就近原则.会使用项目里的那个web.xml

我这里就是第二处项目中的web.xml设置错了.因为我是项目下的main文件夹下的head作为默认页的但是我在web.xml中写成了这样

而但我改成了这样就可以了

当然,也许你不会这么蠢,这里我就说说,万一你踩了呢!

Http访问转Https

为啥要转?

为了保护数据.反正就是当你写一个表单,而在http协议的那个页面下会提示页面不安全,我用火狐浏览器在本地模拟了一下,大概就这样!

当然你不想转也行.

写一下转的过程.我自己从早上鼓捣了大半天呢!

这里我们需要阿里云证书了,有免费的.

写一下怎么拿到证书吧!

搜索SSL,第一个结果,进入控制台

购买证书

购买后,就填信息啥的,这里我有一个了就不演示后边怎么搞了,你要是实在不会就百度一下看看别人的吧!

好!我们搞到证书了!

然后有一个官方视频照着做吧.我在下边讲一下为啥这样那样做

阿里云安装SSL证书视频地址

额,好像也没得讲,算了....

Http强转Https

Http转了Https为啥还要强转?

别急,这时候,如果别人直接输入你的域名,还是使用的是Http协议,那么怎么让别人能输入了你的域名就直接使用https协议访问呢?

并且,我们前边提到过,http传输数据不安全,我们比如有一个登录页面,用户万一是个ZZ,就非要用http协议呢?就比如这样用户输入:http://www.xxx.xxx/login.jsp呢?我们为了保护数据,保护用户.当然要让服务器接受到了Http请求直接就转成Https协议啦.也就是禁用Http请求.因此有了下面的配置

先提一下附加的东西

我在自己的jsp页面中加了行代码后,就自动访问https了,但是当你执意要用http协议访问时,还是可以访问.

我是在我最开始的那个head.jsp页面中加的,浏览器访问head.jsp用到的是Http协议,其后的页面为Https协议.

<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">

---------------------分界线--------------------------------

下面正式开始:经过以下配置,当你执意要用http协议访问时,我们的Tomcat服务器就给强转成Https了

找到Tomcat--conf--server.xml打开

这是建立你看了上一步,如何安装ssl证书,你的8443已经改为443的前提下

找到port为8009的,改成这样,后边是443,这一步和下一步都是为了映射端口

<Connector port="8009" protocol="AJP/1.3" redirectPort="443" />

那个已经修改为80的端口后面改成这样,也是443

<Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="443" />

然后打开Tomcat--conf--web.xml

这一步,为了禁用Http协议

在最后,加上这些,有的博文加的东西不太一样,姑且就信我一次吧,加的位置就在下下图

<security-constraint>
<web-resource-collection>
<web-resource-name>ssl</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>

看好了!!

完成了!!不论是谁用http你的Tomcat就直接给转成Https了.

但是你会发现你的项目中,有的路径就出问题了.我遇到过一个问题,使用表单提交,结果提交不出去了.

其实就是路径的问题.

这里我们假设项目名是cuzu,cuzu下的main文件夹里有head.jsp文件.

我们本来在没有设置域名直接访问项目时要这样访问:http://www.xxx.xxx/cuzu/main/head.jsp

设置了域名后就要这样了:http://www.xxx.xxx/main/head.jsp

我放一个自己的网站的路径

而如果你在项目中的路径上还有你的项目名,比如cuzu.那么就肯定错了!

 

比如这个代码,本来可以现在就要换了!

在jsp页面中要这样了

把这些路径问题修改完后基本就完成了!

别人只可以通过https协议进行访问了!

登录界面也不会显示连接不安全了!

当然这只是我自己的做法,不知道对于你来说会如何.但是,只要坚持百度,总会完成的!

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!