nginx配置https 以及自动跳转

先介绍一下HTTPS

HTTPS是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。也就是说,HTTPS对保护用户在网页中输入的表单,如密码等信息更加安全。

大概讲这么多,既然需要加密,就需要解密。如何解密?解密就需要秘钥,那么我们就需要一个SSL证书,来解密被加密的内容
首先我们可以去阿里云的“云盾控制台”,找到证书服务
选择证书服务
选择购买证书 选择下面这家公司的免费SSL证书购买域名
购买后稍作配置,提交审核,大约几分钟就能审核完成
然后选择nginx 下载证书,然后将证书(包括.pem和.key)上传到服务器的/etc/nginx/cert内,如果没有这个文件夹可以新建一个,如果想放在别的地方也行,这里只是举例说明

先列一下我的环境:

  • 服务器 阿里云ubuntu 16.04
  • nginx v1.10.3
  • sublime text 3 编辑器
  • filezila ftp工具

编辑nginx 的配置文件(xxx是你自己起的文件名)

我选择在/etc/nginx/sites-available内新建一个xxx.conf文件,内容如下所示
除了ssl_certificate和ssl_certificate_key根据自己的情况填写路径以外,别的尽量按照下面去写

server {

	listen 443 ssl;
	
	# Add index.php to the list if you are using PHP
	server_name (域名);
	ssl on;
	ssl_certificate /etc/nginx/cert/xxxxx.pem;
	ssl_certificate_key /etc/nginx/cert/xxxxx.key;
	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;
}

有一个问题,就是人们日常在浏览器都是直接输入域名的,很少会特地输入https://
那么我们就需要对域名作重定向301转移
状态码301 永久性转移
在同一个.conf配置文件上,添加如下代码

server {
	listen 80;
	return 301 https://(域名)$request_uri;
}

将配置文件激活

ln -s /etc/nginx/sites-available/xxx.conf /etc/nginx/sites-enabled/xxx.conf
# sites-enabled 内不需要创建xxx.conf,因为使用了ln命令之后会自动关联创建一个conf文件

检查语法正确性

nginx -t

重启nginx服务器

nginx -s reload # 方便,推荐
# 或者
service nginx restart

nginx服务器 的https配置就完成啦,内容有什么问题和有什么疑问欢迎在下方留言~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值