http升级https

Posted WilliamHub

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了http升级https相关的知识,希望对你有一定的参考价值。

一、下载SSL安全证书

(1)本文章以腾讯云为例,登录腾讯云账号,点击SSL证书;

(2)申请免费证书

http升级https

(3)按照提示申请证书

http升级https


证书申请完需要验证,全部操作成功,即为下图所示

http升级https

二、下载证书

证书申请完成后,即开始下载证书,解压压缩包,包含以下内容

http升级https

三、IIS配置步骤

(1)在桌面上打开我的电脑后找到管理并点击

http升级https


(2)找到服务和应用程序

http升级https

(3)打开 IIS 服务管理器,选择计算机名称,双击打开 “服务器证书”。如下图所示:

http升级https

(4)在服务器证书窗口的右侧 “操作” 栏中,单击【导入】。如下图所示:


http升级https

(5)在弹出的 “导入证书” 窗口中,选择证书文件存放路径,输入密码,单击【确定】。

已在 SSL 证书管理控制台 中下载并解压缩 www.williamsunshile.club证书文件包到本地目录。解压缩后,可获得相关类型的证书文件。其中包含 IIS 文件夹和 CSR 文件:  文件夹名称:IIS 文件夹内容: www.williamsunshile.club.pfx 证书文件      keystorePass.txt 密码文件(若已设置私钥密码,则无 keystorePass.txt 密码文件)


    导入效果如下图所示:

http升级https

(6)选择网站下的站点名称,并单击右侧 “操作” 栏的【绑定】。如下图所示:

http升级https

(7)在弹出的 “网站绑定” 窗口中,单击【添加】。如下图所示:


http升级https

(8)在 “添加网站绑定” 的窗口中,将网站类型设置为 https,端口设置为443,主机名请填写您当前申请证书的域名,并指定对应的 SSL 证书,单击【确定】。如下图所示:

http升级https

(9)添加完成后,即可在 “网站绑定” 窗口中查看到新添加的内容。如下图所示:

http升级https

总结:按照以上操作即开启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 文件内容,避免格式有误。


<?xml version="1.0" encoding="UTF-8"?><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:  port: 443 #端口443默认跳转不带端口值地址,如果需要自定义,则修改此处 ssl: key-store: classpath:www.williamsunshine.club.jks key-store-password: *******

 (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;
@Configurationpublic class HttpToHttpsConfig { /** * http重定向到https * @return */ @Bean public TomcatServletWebServerFactory servletContainer() { //http跳转https TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory() { @Override 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; }
@Bean 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的主要内容,如果未能解决你的问题,请参考以下文章

http升级https遇到的问题

在android studio中升级repo v9后,片段必须是公共静态类崩溃错误

IOS开发-OC学习-常用功能代码片段整理

什么是https?http升级为https需要什么?

javascript 即兼容性升级页面样式片段

HTTP客户端代码片段