admin 管理员组

文章数量: 887006

准备:

(1)首先需要注册和备案一个域名,比如www.leboop

(2)需要一台服务器,这里以腾讯云服务器为例,自行购买

(3)在服务器上安装好JDK和Tomcat(本例以Tomcat服务器为例)

如果上面都已经准备好,此时可以正常访问http://www.leboop,出现的是tomcat页面,如下:

如果不能正常访问,请检查腾讯云安全组,如图:

这里通过创建自定义安全组,放开了22/80/443/3389端口。tomcat默认情况下,端口是8080,这个端口在自定义安全组中并没有放开,我们可以在conf/server.xml中修改端口号,默认如下:

    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

将8080修改成80即可。

上面只能通过http访问页面,而不能通过https访问,而且还被Google Chrome浏览器标记为不安全,开发小程序时,小程序请求也只支持https或者wss协议,不支持http协议。如图:

所以将http转换成https安全访问迫在眉睫。事实上,http是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少;而https是以安全为目标的http通道,简单讲是http的安全版,即在http上加入SSL层,https的安全基础是SSL,因此加密的详细内容就需要SSL。下面通过腾讯云下载一个免费的ssl证书。

登录腾讯云,打开SSL证书管理如图:

可以申请免费证书,如图:

直接点击确定即可。按照步骤填写一些信息,申请成功后,如图:

点击下载,解压后目录结构,如图:

目录下提供了四种服务器SSL证书(Apache、IIS、Nginx、Tomcat),我们以Tomcat服务器为例。Tomcat目录下有两个文件,如下:

下面来配置Tomcat,首先执行shutdown.sh关闭tomcat服务器,将下载的Tomcat证书www.leboop.jks上传到tomcat的conf目录下(与server.xml同目录),然后打开server.xml文件,在80端口的connector前添加如下的connector:

<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
 maxThreads="150" scheme="https" secure="true"
 keystoreFile="conf/www.leboop.jks"
 keystorePass="b567rn3rdfv4qu"
 clientAuth="false" sslProtocol="TLS" />

 有两个参数需要修改

(1)keystoreFile

这里是conf/www.leboop.jks,就是jks文件的相对路径,根据自己的域名情况配置

(2)keystorePass

直接将keystorePass.txt内容拷贝过来即可

配置好后,保存。重启Tomcat,此时就可以访问https://www.leboop了,同时也可以访问http://www.leboop。如果修网访问http://www.leboop时自动跳转到https://www.leboop,我们下面继续配置,

  1. 打开 conf 目录下的 web.xml 文件,找到 </welcome-file-list> 标签。
  2. 在 </welcome-file-list> 下面换行,并添加以下内容:
<login-config>
 <!-- Authorization setting for SSL -->
 <auth-method>CLIENT-CERT</auth-method>
 <realm-name>Client Cert Users-only Area</realm-name>
 </login-config>
 <security-constraint>
 <!-- Authorization setting for SSL -->
 <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>

打开同目录下的 server.xml 文件,将 redirectPort 参数修改为 SSL 的 connector 的端口,即443端口。如下所示:

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

这时,访问http://www.leboop时,自动跳转到https://www.leboop。

 

中间在配置过程中,出现了无法关闭tomcat,错误如下:

[root@VM_16_3_centos logs]# shutdown.sh 
Using CATALINA_BASE:   /root/soft/apache-tomcat-8.5.39
Using CATALINA_HOME:   /root/soft/apache-tomcat-8.5.39
Using CATALINA_TMPDIR: /root/soft/apache-tomcat-8.5.39/temp
Using JRE_HOME:        /root/soft/jdk1.8.0_144
Using CLASSPATH:       /root/soft/apache-tomcat-8.5.39/bin/bootstrap.jar:/root/soft/apache-tomcat-8.5.39/bin/tomcat-juli.jar
Apr 10, 2019 9:37:05 AM org.apache.catalina.startup.Catalina stopServer
SEVERE: Could not contact [localhost:[8005]]. Tomcat may not be running.
Apr 10, 2019 9:37:05 AM org.apache.catalina.startup.Catalina stopServer
SEVERE: Catalina.stop: 
java.ConnectException: Connection refused (Connection refused)
    at java.PlainSocketImpl.socketConnect(Native Method)
    at java.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
    at java.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
    at java.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
    at java.SocksSocketImpl.connect(SocksSocketImpl.java:392)
    at java.Socket.connect(Socket.java:589)
    at java.Socket.connect(Socket.java:538)
    at java.Socket.<init>(Socket.java:434)
    at java.Socket.<init>(Socket.java:211)
    at org.apache.catalina.startup.Catalina.stopServer(Catalina.java:504)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:406)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:498)

原因是没有启动完毕,执行了关闭,因为购买的腾讯云服务器配置比较低,tomcat启动比较慢。需要等待几分钟,在访问页面时,也不要觉得是配置有问题,请耐性等待一会。

 

 

 

 

 

本文标签: 腾讯 转换成 网站 http HTTPS