当前主流网站基本都开始支持HTTPS协议了,对于电商网站来说,由于对安全性的要求还是比较高的,所以支持HTTPS协议是非常必要的。在本节中,我们将把我们在上一节中开发的微服务,启动在8443这个HTTPS的协议上。
我们首先需要生成一个证书文件,因为目前我们是在开发阶段,我们可以使用JDK中自带的工具,生成一个开发证书,在实际运行中,我们需要购买一个CA证书。
打开一个命令窗口,运行如下命令:
keytool -genkey -alias mse_dev -dname "CN=Yantao,OU=dev,O=wkyai,L=HaiDian,ST=BeiJing,C=CN" -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore mse_dev.p12 -validity 3650
运行上面命令,输入并确认密码(123456)后,在当前目录下会生成mse_dev.p12文件,这就是我们在后面要用到的证书文件,同时必须牢记我们刚才输入的密码。
CN:common name,这里可以输入姓名;
OU:Organization Unit,输入部门名称;
O:Organization,单位名称;
L:Location,位置;
ST:State,省份;
C:Country,国家;
接下来我们配置Spring Boot工程。先将当前目录下的mse_dev.p12拷贝到
p
r
o
j
e
c
t
project
project/src/main/resources目录下,在STS中按F5刷新一下整个工程。然后打开application.properties文件,添加如下内容:
#https
server.port: 8443
server.ssl.key-store: classpath:mse_dev.p12
server.ssl.key-store-password: 123456
server.ssl.keyStoreType: PKCS12
server.ssl.keyAlias: mse_dev
此时通过MseApplication.main方法定义处右键选择Run as Spring Boot应用,可以将服务启动在8443端口,并使用HTTPS协议了。
打开浏览器访问:https://localhost:8443/products, 由于是我们自己生成的证书,Chrome浏览器会提示这是一个不安全的链接,我们选择依然前往就可以了,这样就可以显示和上一节一样的内容了。
我们现在已经开发了一个相对完整的服务,并且采用了HTTPS协议,这些内容基本是Spring Boot中的内容。在上一节中,我们为了简化任务,将数据库设置为内存数据库H2,在实际中,我们通常采用Mysql,因此在下一节中,我们将把数据库从H2变为Mysql,并且针对JPA对复杂多表查询不够方便灵活的问题,我们只对数据增删改操作使用JPA,所有复杂的多表查询,均采用JDBC方式进行。