主要说一下http和https的区别和配置,不解释概念,只说配置过程中关键的理解。这里使用腾讯云免费
ssl
证书
腾讯云免费ssl证书地址:这里
1. 区别解释
在配置过程中,http默认配置监听80
端口,表示一个server;而https默认监听443
端口,也是一个server。理解这点非常关键。80端口的server我们已经配置好了,现在就是配置443端口的server,在这个server下再配置ssl
2. 获取证书
腾讯云创建免费证书后下载,解压,会有四个文件夹,我们只需要nginx下的文件
如图有两个文件,一个是.crt
文件,表示证书;另一个是.key
文件,表示秘钥
3. 配置
先将上一步拿到的两个文件上传到与nginx.conf
同级的目录下,然后编辑 nginx.conf
下面贴一个比较简单的80端口server配置:
server {
listen 80;
server_name www.aaa.com;
root /home/blog;
location / {
index index.html
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
根据第一步的理解,我们在80端口的server下新添一个443端口的server,我们要实现http和https访问都会运行同样配置的同一个程序。所以新建server:
server {
listen 443 ssl;
server_name www.aaa.com;
ssl on;
ssl_certificate 1_aaa.com_bundle.crt; #上传的证书路径
ssl_certificate_key 2_aaa.com.key; #上传的秘钥路径
root /home/blog;
location / {
index index.html
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
现在访问http和https是完全相同的效果,我们已经实现了基本配置
另一种情况也很常用,就是http访问自动重定向到https,这样的话http的server不需要处理程序,只需要接受请求重定向到https的server就可以了。所以修改80端口的server:
server {
listen 80;
server_name www.aaa.com;
rewrite ^(.*) https://$host$1 permanent;
}
常用的配置就这些,OK
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。