使用nginx将http服务升级https的详细步骤。。。

一、申请ssl证书

1、升级https服务需要我们持有ssl证书,对于个人网站来说,我们可以去阿里云申请免费的ssl证书(其实因为我是穷逼,免费的证书只能绑定一个域名),废话不多说,直接放地址。

点我申请免费证书
进入之后,选择免费型就OK。
使用nginx将http服务升级https的详细步骤。。。
申请按照提醒一步步的来就行了。
tips:申请成功之后需要在你的域名控制台添加申请后下发的一些信息进行验证,具体信息不记得了,就按照它下发你的信息添加到域名控制台之后就ok。然后在申请页面验证一下,通过之后静待阿里下发证书就好了。

2、证书下发成功后,下载对应的服务器证书。

证书下发后,可以在ssl控制台看到如下的页面,下载对应的服务器证书信息即可。
使用nginx将http服务升级https的详细步骤。。。
我这里使用的nginx,下载对应的nginx证书之后就可以了,解压之后的文件如下图。
使用nginx将http服务升级https的详细步骤。。。
包含两个文件,一个是.key,一个是.pem。

二、配置nginx

1、上传证书到nginx的安装目录下,我这里新建了一个cert文件夹,我将证书放在这个文件夹下。

使用nginx将http服务升级https的详细步骤。。。
记住这个目录,一会配置nginx的时候用的到。

2、打开nginx的配置文件,进入安装目录的conf文件下,vim打开nginx.conf。

使用nginx将http服务升级https的详细步骤。。。
这里nginx的默认注掉https服务的,我们只需要打开加上自己配置的证书路径,其他的和你配置http服务一致就行了。

3、将http服务转发到https

因为之前用的是http服务,这里需要将http服务转发到https,做个简单的配置,直接上图。
使用nginx将http服务升级https的详细步骤。。。
在之前的http服务配置中加上这句话就行了。

三、问题解决

1、穷,emmmmmmmmmmmmmmm,那就用阿里免费的https证书吧。

2、配置https服务时nginx出现的问题。

当你添加https服务之后,nginx进行reload,可能会出现如下的问题。
nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module in。。。。。

这个是因为当初安装nginx的时候没有安装ssl服务模块,可以通过以下命令查看
/usr/local/nginx/sbin/nginx -V

解决办法如下:
1、找到你之前安装的nginx的源码包
2、执行以下配置命令
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
3、进行make install
这里吧网上都说的时执行make,不然就会覆盖之前的nginx配置,经过实测发现并没有,不放心的可以先把之前的nginx配置备份一下

至于我为什么不用这个帖子的办法解决问题呢,因为走着走着走不下去了,帖子里面make之后又需要用之前编译好的配置替换之前的,执行的命令如下。
cp ./objs/nginx /usr/local/nginx/sbin/
可是我在这里根本找不到这个目录,所以直接make install了,也没出问题,具体原因不是很清楚,对于nginx不是很熟悉。

这里贴一个网上别的解决这个问题的帖子,大家可以参照一下。传送门

四、总结

http升级为https也就这么多东西,首先你得有ssl证书,然后就是一些基本的配置了,配置完成之后,最好在检查一下之前的代码看看有没有直接硬编码写死的http路径,我这边是一个前后端分离的项目,有配置的http地址,所以改了一下重新打包就ok。

升级之后的个人网站:dulaoshi.club