内容简介:阅读本篇文章以前,你需要具备基本的服务器运维知识,包括不限于: 基本 Shell 命令,服务器选择及配置,Nginx 基本操作…都已经为什么要写一篇文章专门讨论启用 HTTPS 这个问题呢,原因有几点:
阅读本篇文章以前,你需要具备基本的服务器运维知识,包括不限于: 基本 Shell 命令,服务器选择及配置,Nginx 基本操作…
序言
都已经 8102 年了,为什么要使用 HTTPS 我就不记录了,相关资料网上一搜一大堆,总之,用 HTTPS 准没错对吧?
为什么要写一篇文章专门讨论启用 HTTPS 这个问题呢,原因有几点:
- Chrome 69 以后,默认 HTTPS 的网站才不会出现安全风险提示,否则在地址栏永远会有一个感叹号,心里难受
- 了解一下准没错吧?
- 了解了,实践一下更没错吧?
…
正文
废话不多说了,我的域名由于是在万网买的,阿里云提供了免费一年的 SLL 证书,我就直接拿来用了,至于以后,以后再说吧(继续用阿里是不可能的,太贵 -.-!), Let’s Encryp 是一个通用以及不错的选择。
购买好域名之后,在阿里云盾为你自己的域名(包括子域名)下载免费一年的证书:
解压之后会得到 xxxx.key , xxxxx.pem (基于 BASE64 编码的证书) 两个文件,上传至服务器的 /cert 文件夹中。
配置你的 Nginx
如果你是 CentOS 发行版本,使用
yum -y install nginx
安装 Nginx,安装好之后的配置文件处于 /etc/nginx/ 文件夹中。
编辑 Nginx 配置文件:
<!-- 找到你的虚拟主机 -->
http {
.....
以上关于开启 gzip 等基本设置就忽略了
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name 你的域名;
# (我的是 server_name:blog.richardweitech.cn;)
root /usr/share/nginx/html;
# 将默认80端口的 http 请求通过 rewrite 重写到 https 上
rewrite ^(.*)$ https://$host$1 permanent;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
server {
# 监听 443 端口,默认开启 http2
listen 443 ssl http2 default_server;
server_name 你的域名,同上;
# 开启 SSL 协议
ssl on;
# 上传到服务器上的证书存放位置
ssl_certificate /cert/xxxxx.pem;
ssl_certificate_key /cert/xxxxx.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 / {
}
location /dev {
root /source/dev/public;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
}
当然,如果 HTTP/HTTPS 功能单一或者只需要 HTTPS,我们也可以直接将 HTTP/HTTPS 默认虚拟主机合并, 删除之前的 443 端口虚拟主机的 ssl on 参数:
server {
listen 80;
listen 443 ssl;
server_name www.example.com;
ssl_certificate www.example.com.crt;
ssl_certificate_key www.example.com.key;
...
}
在服务器中启动 Nginx CentOS 7 以上
> systemctl start nginx
再次确认 Nginx 配置是否正确
> nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
访问所配置的域名,可以看见默认已经是 HTTPS 方法了。
Nginx 指令优化
http {
# 缓存 SLL 会话,设置 10M 缓存
ssl_session_cache shared:SSL:10m;
# 缓存超时时间
ssl_session_timeout 10m;
# 开启 gzip 压缩
gzip on;
gzip_min_length 1k;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/javascript application/json;
gzip_buffers 16 8k;
gzip_proxied any;
gzip_vary on;
}
感谢您的阅读,本文由Richard Wei 版权所有。如若转载,请注明出处:Richard Wei( http://blog.richardweitech.cn/2018/09/08/open-https/ )
以上所述就是小编给大家介绍的《为你的网站启用 Https》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- http和https有什么区别?网站有没有必要启用https
- Firefox 已逐渐开始启用 TLS 1.3 支持(附带启用指南)
- 2.启用Admin
- 启用HTTPS过程实例记录
- express启用https小记
- RabbitMQ 启用 HTTP 后台认证
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
使用HTML5和Node构建超媒体API
【美】Mike Amundsen(麦克.阿蒙森) / 臧秀涛 / 电子工业出版社 / 2014-5 / 55.00元
《使用HTML5和Node构建超媒体API》探讨了超媒体API 的设计,介绍了作为超媒体API 的构件块的超媒体因子,并讲解了基本格式、状态转移、领域风格和应用流程这4 种超媒体设计元素;之后作者结合具体的场景,通过3个动手实验章节,从超媒体因子和超媒体设计元素入手,用实际的代码向我们详细地演示了超媒体API 的设计;最后介绍了超媒体设计的文档编写、注册与发布等内容。 《使用HTML5和No......一起来看看 《使用HTML5和Node构建超媒体API》 这本书的介绍吧!