ubuntu安装nginx和设置https访问
安装nginx
在控制台 输入
sudo apt-get install nginx
等待安装成功之后。可以打开浏览器。输入你的域名或者ip地址会出现”Welcome to nginx!”页面。表示安装成功。
申请SSL证书
SSL简介
SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。
现在因为非https网站会被谷歌等一些浏览器报红。提示此网站不安全。所有我们有必要给我们的域名申请一个ssl证书。
ssl证书现在分为3种:
- 名型SSL证书(DV SSL) ,即只对域名的所有者(一般是域名管理员邮箱,比如admin@hotmail.com)进行在线检查,具体是发送验证邮件给域名管理员或以该域名结尾的邮箱至于该域名的管理员是真实注册的单位还是另有其人,就不得而知了。
- 企业型 SSL 证书(OV SSL) ,是要购买者提交组织机构资料和单位授权信等在官方注册的凭证,认证机构在签发SSL证书前不仅仅要检验域名所有权,还必须对这些资料的真实合法性进行多方查验,只有通过验证的才能颁发SSL证书。
-
增强型 SSL 证书(EV SSL) ,与其他SSL证书一样,都是基于SSL/TLS安全协议,都是用于网站的身份验证和信息在网上的传输加密。它跟普通SSL证书的区别也是明显的,安全浏览器的地址栏变绿,如果是不受信的SSL证书则拒绝显示,如果是钓鱼网站,地址栏则会变成红色,以警示用户。
安装 Certbot
Certbot简介可以访问其官网查看。
Certbot官网https://certbot.eff.org/#ubuntuxenial-nginx 选择自己对于的系统版本。就会生成对于的安装命令。
下面以ubuntu 16.04为例。
$ sudo apt-get update
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt-get update
$ sudo apt-get install python-certbot-nginx
获取SSL
$ sudo certbot --authenticator webroot --installer nginx
输入以上命令。如果出现下图表示SSL获取成功。可以复制证书路径。后面有用。
自动更新
我们单次申请的免费证书有效时间是90天。所有我们要设置免费续费。这样就可以一直免费试用下去了。
$ sudo certbot renew --dry-run
nginx配置
我们已经通过certbot获取ssl证书。现在就开始来为我们的网站配置https访问。
编辑nginx配置文件。
vi /etc/nginx/sites-available/default
新增一个ssl serevr,配置如下
“`
server {
listen 443;
server_name cn4.retailstore365.com;
root html;
index index.html index.htm;
ssl on;
ssl_certificate /etc/letsencrypt/live/xxxxx/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/xxxxx/privkey.pem;
ssl_session_timeout 5m;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES";
ssl_prefer_server_ciphers on;
location / {
try_files $uri $uri/ =404;
}
}
“`
xxxxx请替换成自己的域名。或者直接复制刚刚申请ssl成功之后的证书地址。
然后重启nginx
sudo service nginx reload
然后再次访问你的你的域名或者ip地址:https://xxxxxxx.com/会看到前面的地址变成绿色了。表示ssl部署成功。
nginx常用命令
启动:sudo nginx
重启:sudo service nginx reload
关闭:sudo nginx -s stop
查看版本:sudo nginx -v
检查配置文件:sudo nginx -t