通过https访问,nginx部署的vue项目

  • Post author:
  • Post category:vue



目录


项目需求:


通过https访问nginx部署的vue项目,这边使用的是通过jdk包生成密钥,进行配置使用


一、准备工作


Ⅰ、nginx安装包


Ⅱ、jdk安装包


Ⅲ、openssl包安装


二、生成密钥


Ⅰ、生成jks


Ⅱ、jks文件转化成p12文件


Ⅲ、生成.crt文件


Ⅳ、生成.key文件


三、配置nginx


Ⅰ、文件拷贝


Ⅱ、配置nginx.conf文件


四、效果实现


Ⅰ、检测nginx.conf配置文件是否有问题


Ⅱ、防止相互影响,杀死已经开启的nginx进程


Ⅲ、开启nginx


Ⅳ、访问项目


Ⅴ、安装ssl证书


Ⅵ、重启nginx


Ⅶ、配置证书之后https再次访问


Ⅷ、配置http强制转换https访问


五、调研困难及解决办法


Ⅰ、443端口被占用


Ⅱ、重启nginx,访问项目,项目无变化




项目需求:





通过https访问nginx部署的vue项目,这边使用的是通过jdk包生成密钥,进行配置使用

一、准备工作

Ⅰ、nginx安装包

下载地址:

http://nginx.org/en/

Ⅱ、jdk安装包

参照博主上个文档


Windows下JDK安装配置_渣渣灰飞的博客-CSDN博客

Ⅲ、openssl包安装

参照博主上个文档


windows 下openssl安装配置_渣渣灰飞的博客-CSDN博客_openssl环境配置

二、生成密钥

Ⅰ、生成jks

使用keytool命令生成springcert1111.jks到D盘

直接粘贴下面命令到上面打开的窗口(

命令中有几项可以自定义,可参照下方命令详解,修改命令

keytool -genkeypair -alias springcert1111 -ext san=ip:192.168.102.234,dns:wangqiangtest.com -keyalg RSA -keysize 2048 -keypass 123456 -validity 3650 -keystore d:\springcert1111.jks -storepass 123456

命令详解:

注意:

1.设置的别名下面需要用到,可自定义

2. 设置ip为本机ip

3. 域名设置可自定义,无实际意义,只是为确保生成的证书安装到浏览器不会出现提示信息

4. 设置密码,默认123456,可自定义,保证前后一致

5. 生成在d盘的文件,可根据自身修改生成文件的位置,生成的文件名字,拓展名不可变,必须生成”.jks”文件

6. 姓氏名称尽量与设置域名保持一直,防止出现未知错误

7.地区可自定义

8.地区名称代码 cn(中国)

Ⅱ、jks文件转化成p12文件

使用keytool命令把上一步生成的d盘springcert1111.jks转换成springcert1111.p12到d盘

keytool -importkeystore -srckeystore d:\springcert1111.jks -srcalias springcert1111 -destkeystore d:\springcert1111.p12 -deststoretype PKCS12

命令详解

Ⅲ、生成.crt文件

使用openssl命令,通过上一步生成的springcert1111.p12文件,生成部署所需要的“.crt”文件

openssl pkcs12 -in d:\springcert1111.p12 -nokeys -clcerts -out d:\springcert.crt

Ⅳ、生成.key文件

使用openssl命令,通过上一步生成的springcert1111.p12文件,生成部署所需要的“.key”文件

openssl pkcs12 -in d:\springcert1111.p12 -nocerts -nodes -out d:\springcert.key

文件生成:

三、配置nginx

Ⅰ、文件拷贝

复制生成的


.crt


文件和

.key

文件到nginx文件的conf文件下

Ⅱ、配置nginx.conf文件

配置conf文件中nginx.conf文件(

配置此项的前提是项目已经通过nginx成功部署

在nginx.conf配置并保存

d48fc548d87a8641f461c91c3a3508d8.png

四、效果实现

Ⅰ、检测nginx.conf配置文件是否有问题

输入命令 nginx -t

下图为列,提示ok,如是返回数据与下图不符合,请至文件最下放寻找相关解决办法

98af2592f365bf78daa3194426fdf798.png

Ⅱ、防止相互影响,杀死已经开启的nginx进程

命令 taskkill /f /t /im nginx.exe

下图表没有已经开起的nginx进程

Ⅲ、开启nginx

命令 start nginx

页面闪烁,表示已经开启

Ⅳ、访问项目

https://+ip+:443

cd25fb3930219fe3b8177dddcc65b42a.png

82f6d9f4ab59807827b63d8d451e9e2c.png

访问成功,但是点击不安全提示,弹出证书无效

Ⅴ、安装ssl证书

1、window系统证书安装

找到复制到nginx文件下conf文件中的crt文件双击

d88c366d543401816aea0528fa3989f1.png

b1f3a37d8158575e08e6f1a08085b763.png

fbb0ad11ca0a124a906c418f34446d01.png

2、mac系统安装证书配置:

  • 创建一个文件夹,我这里取的名字是keytool(您可以取任意名字)

  • 用终端打开keytool文件夹,输入以下命令

  • 生成了以下文件,我们只需要把以.crt和.key结尾的文件复制在和nginx的配置文件nginx.conf同一目录下就行

  • 双击以.crt结尾的文件,输入你登录的密码,进行添加证书(我这里是添加过了证书的效果,第一次添加可能会没什么界面显示,你可以在钥匙串里面看到刚才添加的证书):

50204aa55f30be42a39cfb36314615d2.png

  • 右键刚才添加的证书,点击显示简介:

587c595fc12b3379ca701a4d43a95575.png

  • 把证书的信任下的使用此证书时的选项改为始终信任,关闭该简介,点击更新设置即可:

d346e505db7de9533ee90dad730f9ffc.png

  • 成功之后的截图:

Ⅵ、重启nginx

再次杀死所有nginx进程后开启nginx

taskkill /f /t /im nginx.exe

start nginx

Ⅶ、配置证书之后https再次访问

(关闭之前浏览器中打开的项目页面,否则无变化)

如下图,https访问成功

Ⅷ、配置http强制转换https访问

在nginx.conf文件中配置,在http配置中添加

return 301 https://$server_name$request_uri; 然后保存

杀死nginx所有进程

taskkill /f /t /im nginx.exe

检查配置是否正确

nginx -t

开启nginx

start nginx

打开新的浏览器(关闭之前访问的网管页面)

输入http://+ip+:+”http端口,上图为8790″

页面直接重定向到https,访问成功

五、调研困难及解决办法

Ⅰ、443端口被占用

问题描述:

检测nginx配置是否有误时,出现下图,这时443端口被占用,nginx不能成功启动

解决办法:

win+r,打开运行窗口,输入命令

netstat -aon|findstr “443”

发现占用443端口pid为5656,打开任务管理器,—>服务,点击pid,找到对应5656的服务全部关闭。

686087264c57ac3c6cea7a58b69dc5f4.png

关闭之后再次查看nginx.conf文件配置是否有问题,出现下图,表示443端口占用问题解决

Ⅱ、重启nginx,访问项目,项目无变化

问题描述:

配置项目的过程中,nginx重新启动,再次刷新之前访问的项目页面,没有任何变化

解决办法:关闭之前打开的,或者使用无痕浏览器再次访问就会改变

(注意:nginx重启之后,修改的功能已经实现,浏览器缓存了页面信息,所以关闭之前打开的页面,需要重新输入网址请求)



版权声明:本文为flhhly原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。