http 转化为https的方法,自签名证书的安装

214 阅读2分钟

方式一

创建web项目

一个普通的web项目

@SpringBootApplication
@RestController
public class CaWebApplication {

    public static void main(String[] args) {
        SpringApplication.run(CaWebApplication.class, args);
    }

    @GetMapping("/hello")
    public String hello(){
        return "hello https";
    }
}

未转化未http的时候利用http访问是正常的,但是访问https时后端报错

https配置

此时在配置文件配置,同时将生成的keystore文件放到resources目录下 生成keystore见下文

server:
  port: 81

  ssl:
    key-store: classpath:dongbao-alias.keystore
    key-store-type: JKS
    key-alias: dongbao-alias
    key-store-password: 123456
    key-password: 123456

点击继续前往

访问成功

此时http已经不能访问

解决浏览器显示不安全的问题
生成带域名的keystore

由于上文的生成ca密钥时候并没有配置本地地址

所以需要将开始生成的文件删除重新利用jdk自带keytools工具生成新的keystore文件

注:需要删除原来生成的文件

.\keytool.exe -genkeypair -alias dongbao-alias -keypass 123456 -keyalg RSA -validity 365 -keystore D:\JAVA_\project\dongbao-mall\cer2\dongbao-alias.keystore -storepass 123456 -ext san=dns:localhost

导出证书

同样在安装jdk的位置利用keytools工具导出证书

导出证书的命令:

.\keytool.exe -exportcert -alias dongbao-alias -keystore D:\JAVA_\project\dongbao-mall\cer2\dongbao-alias.keystore -file D:\JAVA_\project\dongbao-mall\cer2\my.cer

导出成功

安装证书

双击my.cer开始安装

点击为当前用户安装

然后点击下一页

安装完成

删除证书

如果你创建的证书已经不需要或者已经过期,在浏览器中点击设置,可以删除证书

问题解决

如果已经操作完上述步骤后发现还是不安全,此时你可以重启浏览器或者清理浏览器的缓存,再次打开即可

方式二--http转https企业级

安装OpenSSL和nginx

首先安装OpenSSL,可以参考

www.cnblogs.com/dingshuangl…

安装nginx,可以参考

blog.csdn.net/cjw12581/ar…

安装好以后

创建RSA证书

在对应目录下新建nginx目录

执行 openssl genrsa -des3 -out dongbao.key 1024

然后输入需要设置的密码,两次确认后,创建完成

生成新的文件

openssl req -new -key dongbao.key -out dongbao.csr

免密登录

由于这个.key放入到nginx中时,每次都需要输入密码,为了简化,我们设置免密登录

.key文件后缀改为.src

在其目录下重新生成.key文件

生成证书

openssl x509 -req -days 365 -in .\dongbao.csr -signkey .\dongbao.key -out dongbao.crt

文件生成

配置nginx

打开nginx.conf文件

更改配置

然后重新启动nginx.\nginx.exe -s reload 现在nginx监听的时443端口,会将其转到8080端口

web项目的配置的端口8080

注:http默认端口是80,https默认端口是443

访问https://localhost:443/hello

点击高级选择继续访问

总结

我们只需要在nginx.conf中配置相对应的证书,就可以实现http转https