Nginx配置SSL证书部署HTTPS网站(配置站点使用 https,并且将 http 重定向至 https)

Nginx配置SSL证书部署HTTPS网站(配置站点使用 https,并且将 http 重定向至 https)

一、什么是 SSL 证书,什么是 HTTPS

SSL 证书是一种数字证书,它使用 Secure Socket Layer 协议在浏览器和 Web 服务器之间建立一条安全通道,从而实现:
1、数据信息在客户端和服务器之间的加密传输,保证双方传递信息的安全性,不可被第三方窃听;
2、用户可以通过服务器证书验证他所访问的网站是否真实可靠。

HTTPS 是以安全为目标的 HTTP 通道,即 HTTP 下加入 SSL 加密层。HTTPS 不同于 HTTP
的端口,HTTP默认端口为80,HTTPS默认端口为443。

二、自行颁发不受浏览器信任的SSL证书

  • 进入nginx目录创建证书存放的位置
[root@localhost nginx]# mkdir cert
[root@localhost nginx]# cd cert/
  • 生成一个RSA密钥
[root@localhost cert]# openssl genrsa -des3 -out cert.key 1024

在这里插入图片描述

注释:用户名和密码可以自定义

  • 拷贝一个不需要输入密码的密钥文件(配置后nginx启动和关闭不需要输入密码就行)
[root@localhost cert]# openssl rsa -in cert.key -out cert_nopass.key

在这里插入图片描述
在这里插入图片描述

注释:nginx如果配置指定cert.key 则每次修改配置重启的时候需要输入用户名和密码
nginx如果配置指定cert_nopass.key 则每次修改配置重启的时候不需要输入用户名和密码

  • 生成一个证书请求
[root@localhost cert]# openssl req -new -key cert.key -out cert.csr

在这里插入图片描述
在这里插入图片描述

注:该命令是生成证书请求,会提示输入省份、城市、域名信息等,重要的是,email一定要是你的域名后缀的。这样就有一个 csr 文件了,提交给
ssl 提供商的时候就是这个 csr 文件。当然我这里并没有向证书提供商申请,而是在后面自己签发了证书。

  • 自己签发证书
[root@localhost cert]# openssl x509 -req -days 365 -in cert.csr -signkey cert.key -out cert.crt

在这里插入图片描述

三、修改nginx主配文件nginx.conf(配置站点使用 https,并且将 http 重定向至 https)

  1. 编辑nginx配置文件
[root@localhost conf]# vim nginx.conf
    server {
    listen       443 ssl;
    server_name  localhost;

    ssl_certificate /usr/local/nginx/cert/cert.crt;
    ssl_certificate_key /usr/local/nginx/cert/yt_nopass.key;
	指定Tomcat或者网站服务
    location / {
        proxy_pass http://192.168.1.168:8080;
        proxy_redirect default;
    }

重启nginx服务

nginx –s reload
  • 2、测试验证

访问https://192.168.1.168
自己颁发的SSL证书能够实现加密传输功能,但浏览器并不信任,会给出提示:

在这里插入图片描述
在这里插入图片描述

四、通过第三方颁发证书(阿里云)

颁发证书 登录阿里云管理控制台,【云盾】菜单选择【证书服务】,选择购买证书;
我弄得免费版的做的测试,申请之后,经过一两天的审核,然后就可以下载证书了。下载解压后是两个文件,一个key结尾,私钥,一个是pem结尾,是公钥。

配置nginx 文件说明: 证书文件”申请的证书名字.pem”,包含两段内容,请不要删除任何一段内容。

如果是证书系统创建的CSR,还包含:证书私钥文件”申请的证书名字.key”。
( 1 )在Nginx的安装目录下创建cert目录,并且将下载的全部文件拷贝到cert目录中。如果申请证书时是自己创建的CSR文件,请将对应的私钥文件放到cert目录下并且命名为”申请的证书名字.key”;
( 2 ) 打开 Nginx 安装目录下 conf 目录中的 nginx.conf 文件,找到:

在这里插入图片描述

server { 
		listen 443; 
		server_name localhost; 
		ssl on; 
		root html; 
		index index.html index.htm; 
		ssl_certificate cert/申请的证书名字.pem; 
		ssl_certificate_key cert/申请的证书名字.key; 
		ssl_session_timeout 5m; 
		ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; 
		ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
		ssl_prefer_server_ciphers on; 
		location / { 
			root html; 
			index index.html index.htm; 
			} 
}

保存退出。
重启 Nginx。
通过 https 方式访问您的站点

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

被生活耽误的旅行者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值