http升级https
Posted WilliamHub
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了http升级https相关的知识,希望对你有一定的参考价值。
一、下载SSL安全证书
(1)本文章以腾讯云为例,登录腾讯云账号,点击SSL证书;
(2)申请免费证书
(3)按照提示申请证书
证书申请完需要验证,全部操作成功,即为下图所示
二、下载证书
证书申请完成后,即开始下载证书,解压压缩包,包含以下内容
三、IIS配置步骤
(1)在桌面上打开我的电脑后找到管理并点击
(2)找到服务和应用程序
(3)打开 IIS 服务管理器,选择计算机名称,双击打开 “服务器证书”。如下图所示:
(4)在服务器证书窗口的右侧 “操作” 栏中,单击【导入】。如下图所示:
(5)在弹出的 “导入证书” 窗口中,选择证书文件存放路径,输入密码,单击【确定】。
已在 SSL 证书管理控制台 中下载并解压缩 www.williamsunshile.club证书文件包到本地目录。
解压缩后,可获得相关类型的证书文件。其中包含 IIS 文件夹和 CSR 文件:
文件夹名称:IIS
文件夹内容:
www.williamsunshile.club.pfx 证书文件
keystorePass.txt 密码文件(若已设置私钥密码,则无 keystorePass.txt 密码文件)
导入效果如下图所示:
(6)选择网站下的站点名称,并单击右侧 “操作” 栏的【绑定】。如下图所示:
(7)在弹出的 “网站绑定” 窗口中,单击【添加】。如下图所示:
(8)在 “添加网站绑定” 的窗口中,将网站类型设置为 https,端口设置为443,主机名请填写您当前申请证书的域名,并指定对应的 SSL 证书,单击【确定】。如下图所示:
(9)添加完成后,即可在 “网站绑定” 窗口中查看到新添加的内容。如下图所示:
总结:按照以上操作即开启IIS服务,则输入http://www.williamsunshile.club,或者https://www.williamsunshile.club都可以访问页面
注意:(1)IIS默认网站访问路径查看,右击下图红框中,点击预览,即可找到http://www.williamsunshile.club、https://www.williamsunshile.club默认跳转页面。
(2)自定义网站访问则需要新建网站,然后关闭默认网站,则访问时可以跳到自己网页,但选择物理路径时要注意不能写绝对路径,应该这样定义,不可写成C:\workspace。
四、Tomacat安装SSL证书
(1)证书安装
已在 SSL 证书管理控制台 中下载并解压缩 www.williamsunshile.club证书文件包到本地目录。
解压缩后,可获得相关类型的证书文件。其中包含 Tomcat 文件夹和 CSR 文件:
文件夹名称:Tomcat
文件夹内容:
www.williamsunshile.club.jks 密钥库
keystorePass.txt 密码文件(若已设置私钥密码,则无 keystorePass.txt 密码文件)
(2)登录服务器
将已获取到的 www.williamsunshile.club.jks
密钥库文件从本地目录拷贝至 服务器tomact的conf目录下。
编辑tomacat里conf文件加下的server.xml
文件,添加如下内容:
<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
#证书保存的路径
keystoreFile="conf/www.williamsunshile.club.jks"
#密钥库密码
keystorePass="******"
clientAuth="false"/>
详细 server.xml
文件请参考如下内容:
注意:
不建议您直接复制 server.xml 文件内容,避免格式有误。
<Server port="8005" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.startup.VersionLoggerListener" />
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
<GlobalNamingResources>
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
</GlobalNamingResources>
<Service name="Catalina">
<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
<Connector port="443" protocol="HTTP/1.1"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false"
keystoreFile="conf/www.williamsunshile.club.jks"
keystorePass="******" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
<Engine name="Catalina" defaultHost="www.williamsunshile.club">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<Host name="www.williamsunshile.club" appBase="webapps"
unpackWARs="true" autoDeploy="true" >
<Context path="" docBase ="Knews" />
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
</Engine>
</Service>
</Server>
配置文件的主要参数说明如下:
keystoreFile:密钥库文件的存放位置,可以指定绝对路径,也可以指定相对于 <CATALINA_HOME> (Tomcat安装目录)环境变量的相对路径。如果此项没有设定,默认情况下,Tomcat 将从当前操作系统用户的用户目录下读取名为 “.keystore” 的文件。
keystorePass:密钥库密码,指定 keystore 的密码。申请证书时若设置了私钥密码,请填写私钥密码;若申请证书时未设置私钥密码,请填写 Tomcat 文件夹中 keystorePass.txt 文件的密码。
clientAuth:如果设为 true,表示 Tomcat 要求所有的 SSL 客户出示安全证书,对 SSL 客户进行身份验证。
(3)启动tomacat
若启动成功,即可使用 https://www.williamsunshile.club
进行访问。
五、springBoot配置SSL证书
(1)将Tomacat中解压的www.williamsunshile.club.jks复制到resourcesresources目录下,然后配置application.yml文件,添加以下内容
server:
443 #端口443默认跳转不带端口值地址,如果需要自定义,则修改此处 :
ssl:
classpath:www.williamsunshine.club.jks :
******* :
(2)创建httpToHttps的config代码,HttpToHttpsConfig.java 代码如下所示:
package com.example.config;
import org.apache.catalina.Context;
import org.apache.catalina.connector.Connector;
import org.apache.tomcat.util.descriptor.web.SecurityCollection;
import org.apache.tomcat.util.descriptor.web.SecurityConstraint;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
public class HttpToHttpsConfig {
/**
* http重定向到https
* @return
*/
public TomcatServletWebServerFactory servletContainer() {
//http跳转https
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory() {
protected void postProcessContext(Context context) {
SecurityConstraint constraint = new SecurityConstraint();
constraint.setUserConstraint("CONFIDENTIAL");
SecurityCollection collection = new SecurityCollection();
collection.addPattern("/*");
constraint.addCollection(collection);
context.addConstraint(constraint);
}
};
//http不跳转
// TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
tomcat.addAdditionalTomcatConnectors(httpConnector());
return tomcat;
}
public Connector httpConnector() {
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
connector.setScheme("http");
//Connector监听的http的端口号
connector.setPort(8080);
connector.setSecure(false);
//监听到http的端口号后转向到的https的端口号
//此处端口和application.yml一致
connector.setRedirectPort(443);
return connector;
}
}
总结:使用 https://www.williamsunshile.club可以
进行访问,http://www.williamsunshile.club:8080会跳转https://www.williamsunshile.club进行访问。
六、总结
按照以上操作http协议就能升级为https协议,如有见解,欢迎和我讨论交流,让我们一起进步。
以上是关于http升级https的主要内容,如果未能解决你的问题,请参考以下文章