
文章插图
然后,创建一个CSR(Certificate Signing Request)文件,

文章插图
这里的操作与上面生成CA证书的操作类似 。
接下来,再创建一个配置文件 。这个配置文件(文本文件)主要是用来定义Subject Alternative Name (SAN) 扩展的(具体见https://deliciousbrains.com/https-locally-without-browser-privacy-errors/#creating-self-signed-certificate) 。例如,创建下面这样的配置文件(需要根据你的网站/app名做一些修改):
authorityKeyIdentifier=keyid,issuerbasicConstraints=CA:FALSEkeyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEnciphermentsubjectAltName = @alt_names[alt_names]DNS.1 = dev.mergebot.comDNS.2 = dev.mergebot.com.192.168.1.19.xip.io最后就是用CSR文件、CA private key 、CA根证书和刚才创建的配置文件,执行以下命令生成证书(用自己的CA签名):

文章插图
openssl x509 -req -in dev.mergebot.com.csr -CA myCA.pem -CAkey myCA.key -CAcreateserial -out dev.mergebot.com.crt -days 1825 -sha256 -extfile dev.mergebot.com.ext提示输入CA private key的密码,输入之后,就得到web服务的证书CRT文件了 。
四、把CRT证书文件部署至Linux服务器把CRT证书文件部署到web服务器有很多种方法,操作不大相同,这里介绍:1)如何把CRT部署到Nginx上;2)把CRT整合到Spring Boot项目中 。这两个方法应该满足大多数项目的需要了 。另外,独立部署的Tomcat服务器应该也支持配置CRT证书,可以自行搜索资料学习 。
1)CRT部署到Nginx服务器
让web服务器支持https需要安装Nginx,这里假设nginx服务已经部署好了 。打开nginx的配置文件(例如/etc/nginx/sites-available/yoursite.com),找到server段,增加以下指令:
listen 443 ssl http2;listen [::]:443 ssl http2;ssl_certificate /crt文件路径/;ssl_certificate_key /web服务privateKey文件路径;修改完nginx配置文件之后,再通过以下命令重启nginx即可实现https!
sudo service nginx reload2)CRT部署到Spring Boot项目
把CRT集成到Spring Boot项目非常简单(主要原因是Spring Boot太强了),只需要在项目配置文件(例如application.properties)中修改名为"server.ssl.***"的属性即可,例如:

文章插图
Spring Boot中与SSL相关的配置
通过配置文件支持https之后,原来的http访问方式就不再支持了 。如果还需要支持http的访问方式,让http跳转到https,那么还需要在Spring中部署以下代码:

文章插图
让 http自动跳转至https的代码
权威讲解建议参考SpringBoot官方文档https://docs.spring.io/spring-boot/docs/2.1.8.RELEASE/reference/html/howto-embedded-web-servers.html#howto-configure-ssl这样,https服务就搭建起来了 。
现在你学会如何把http服务升级到https了吧?有没有试着搭建一下自己的CA(只需要2条命令)?本文所述方法有什么缺点吗?有更简单的方法吗?欢迎留言 。
参考资料:https://deliciousbrains.com/https-locally-without-browser-privacy-errors/https://spinupwp.com/hosting-wordPress/ target=_blank class=infotextkey>WordPress-yourself-ssl-spdy/https://deliciousbrains.com/ssl-certificate-authority-for-local-https-development/https://zhuanlan.zhihu.com/p/31385073https://blog.csdn.net/l4642247/article/details/81631770以上分析希望对您的工作和面试有帮助 。如果对互联网编程技术、Java、Spring、Android、C/C++、Linux、个性化推荐、Community Detection、machine Learning、Deep Learning、Data Mining、Gnuplot、LaTeX等技术感兴趣的话,欢迎关注本公众号 。
【程序员创业必备:如何让Web服务支持https,有哪些免费CA机构】
推荐阅读
- 办公室必备保健茶,养生保健茶
- 大学必备含金量高的几大证书是什么?
- 水果|精致男人发型必备——畅醒定型喷雾与发蜡
- 爬山必备品有哪些呢
- 自媒体入门必备网站,新手必看
- 美容护肤小知识,爱美必备!
- 布依族生活必备茶,抹茶蜜豆蛋糕卷的做法
- 优秀程序员必备以下五点能力,你都掌握了吗?
- 市场总监必备 从0到精通SEM
- 为了争取投资,创业计划书要对创业前景?创业计划书中投资
