文章作者:兼爱子墨 文章地址:http://www.cnblogs.com/wbq1113/p/9357332.html 本人参考大佬的这篇文章,并且追了功能:可以使用http://xxx 访问时重定向到https://xxx,原文章当你使用http://xxx访问时会提示找不到服务器o( ̄︶ ̄)o
证书的获取略
服务器的端口443和80确保外界网络能够进行访问。(也就是你的阿里云安全组放开https的443端口和放开http80端口,否者无法从http://xxx 自动重定向到https://xxx)
是否配置https:
nginx:是
tomcat:否
参考链接:实战http切换成https 查看nginx支持SSL
[root@ytkj bin]# /usr/local/nginx/sbin/nginx -V nginx version: nginx/1.13.3 built by gcc 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) built with OpenSSL 1.0.2k-fips 26 Jan 2017 TLS SNI support enabled configure arguments: --with-http_ssl_module [root@ytkj bin]#看到有–with-http_ssl_module。说明支持SSL。
此处我遇到了第一个坑:
按照我上面的参考链接增加了SSL模块的小伙伴们注意了。在执行命令
[root@ytkj bin]# /usr/local/nginx/sbin/nginx -s reload重启后,可能SSL模块并不会生效。而是要通过重启nginx主线程来重新加载配置。
[root@ytkj nginx-1.13.3]# ps -ef | grep nginx root 8802 10800 0 10:23 ? 00:00:00 nginx: worker process is shutting down root 8803 10800 0 10:23 ? 00:00:00 nginx: worker process is shutting down root 9992 4681 0 14:45 pts/0 00:00:00 grep --color=auto nginx root 10800 1 0 6月29 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf [root@ytkj nginx-1.13.3]# kill -QUIT 10800 [root@ytkj nginx-1.13.3]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf上段代码中第二个server既是追了功能:可以使用http://xxx 访问时重定向到https://xxx
nginx proxy_set_header设置、自定义header 关于nginx代理中请求头的一些设置的具体原因和原理
在这个配置中,我遇到的坑是listen 433 ssl;和 ssl on;
有的是只写listen 433;即可。这是由于nginx 版本的原因。最开始我也没写,但是一直不能访问,添加后,一切正常。
光是有这个是不够的,同时还要对我们的服务器进行配置。既Tomcat.
==在这里提一下,原博主写的是433 无法访问,必须追加ssl , 本人环境CenOS6.8 Nginx1.8 发现加不加ssl都可以访问。 ==
这里必须表扬原博主,心非常细致(作为程序员必须要严谨嘛,可不能只实现效果即可,好了,说的多了O(∩_∩)O哈哈~),我参考其他博文时下边直接给出value…的配置,我当时以为这是修改呢,原来是追加,重要的话说一遍:<Connector port="8080"是修改 ,<Valve className=是追加内容 ,切记!
PS:
**到这里配置就完成了,重启tomcat 和 nginx ,测试一下吧,有问题可以给我留言哦o( ̄︶ ̄)o **