文章详情
ubuntu安装nginx并配置https
标签:
- ubuntu
- nginx
- https
日期:2019-1-09 19:11
摘要:https认证的网站在浏览器地址栏会出现一把绿色的小锁,不会被抓包,且微信小程序只支持https的接口调用...
点赞:5
评论:0
阅读:1025
ubuntu安装nginx直接通过APT安装就挺方便的,不用折腾:
sudo apt-get install nginx
安装后的文件位置:
/usr/sbin/nginx:主程序
/etc/nginx:存放配置文件的目录
/usr/share/nginx:存放静态文件的目录
/var/log/nginx:存放日志的目录
安装好后就自动启动了,用sudo service nginx status指令看一下运行状况,一般是没问题的。通过这种方式安装的,会自动创建服务,自动在/etc/init.d/nginx新建服务脚本,然后就可以使用sudo service nginx { start | stop | restart | reload | force-reload | status | configtest | rotate | upgrade }的命令。
https在http下加了ssl层,不会被抓包,比http安全,在浏览器的地址栏左边会出现一把绿色的小锁。
配置https需要ssl证书,自签名证书没用,需要先去申请,阿里云和腾讯云都有免费的证书申请,下载后解压会出现几个文件夹:
需要拿到Nginx文件夹内的文件,这是公钥和私钥:
把这些文件放到/etc/nginx/conf.d文件夹内,同时在这个文件夹新建一个ssl.conf文件,写入:
server {
listen 443;
server_name www.xi-g.com; # 改为绑定证书的域名
# ssl 配置
ssl on;
ssl_certificate /etc/nginx/conf.d/1_www.xi-g.com_bundle.crt; # 改为自己申请得到的 crt 文件的路径
ssl_certificate_key /etc/nginx/conf.d/2_www.xi-g.com.key; # 改为自己申请得到的 key 文件的路径
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4:!DH:!DHE;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://localhost:3000; # 做端口转发
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
}
这样就把https配置好了,但访问网站加www和不加www是存在跨域的,还需要做一些重定向,这样不管怎么访问都是https://www打头,在ssl.conf里再追加:
server {
listen 80;
server_name www.xi-g.com;
rewrite ^(.*)$ https://${server_name}$1 permanent;
}
server {
listen 80;
server_name xi-g.com;
rewrite ^(.*)$ https://www.${server_name}$1 permanent;
}
server {
listen 443;
server_name xi-g.com;
rewrite ^(.*)$ https://www.${server_name}$1 permanent;
}
这样不管访问以下哪个域名
http://www.xi-g.com
http://xi-g.com
https://xi-g.com
都会跳转到https://www.xi-g.com
最后重加载一下nginx的配置,大功告成...
sudo service nginx reload
点赞 | 5
发送
评论(0)