方式一
创建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,可以参考
安装nginx,可以参考
安装好以后
创建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