在ubuntu上安装和配置nginx https站点

安装和配置nginx

% apt-get update   #更新安装库
% apt-cache search <name>  #从安装库中查找安装包

若apt-get 列表中无nginx安装包:
将sources.backup.d/中的sources.list复制到sources.list.d/中。

% cd /etc/apt/
% cp sources.backup.d/sources.list sources.list.d/
% apt-get install nginx   #安装nginx服务
% server nginx start  #启动nginx
% ss  -tnl  查看当前启动的服务及端口(若开启了80端口,则说明nginx安装成功,并启动)
% cd /etc/nginx  #进入到nginx目录
% touch sites-available/<hostName>  #在sites-available目录下创建<hostName>文件,并将vhost配置写入到<hostName>文件中。

Nginx.conf会读取/site-enabled/中的文件,/sites-available/为了方便保存不用的配置。启用的时候只要ln一下。
这里写图片描述

% cd  site-enabled 
% ln  -s  ../sites-available/<hostName>  <hostName>   #创建软链jiyiguanjia.cn 并连接到sites-available/<hostName>

重启nginx

% service  nginx  restart (或者:nginx  -s  reload) 

将站点升级为https方式访问

https参考链接:
https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-16-04
https://www.nginx.com/blog/free-certificates-lets-encrypt-and-nginx/

注意事项:添加https要求网站必须为真实的域名解析到服务器。

(1)从github下载letsencrypt源码:

% git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt

(2)% cd /opt/letsencrypt
(3)% sudo ./letsencrypt-auto
(4)修改网站配置信息

% cd /etc/nginx/sites-available/
% vim <hostName>

这里写图片描述
修改并保存。

重启nginx:

% sudo nginx -s reload

(5)

% cd /opt/letsencrypt 
% ./letsencrypt-auto certonly -a webroot --webroot-path=/var/www/html -d example.com -d www.example.com

(6)再次修改网站配置信息

 % cd /etc/nginx/sites-available/
 % vim <hostName>

监听端口改为443 ssl ,添加一些https配置

listen 443 ssl;

    server_name  <hostName>;
    root        <webPath>;
    index       index.php;

    ssl_certificate /etc/letsencrypt/live/<hostName>/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/<hostName>/privkey.pem;

修改并保存。

重启nginx,此时就可以使用https访问站点了

% sudo nginx -s reload

(7)编写脚本自动更新网站证书

这里写图片描述

在/opt/letsencrypt/目录下编写脚本lestencrypt-renewal

#!/bin/bash
log_file=/var/log/letsencrypt/renew.log

sudo /opt/letsencrypt/letsencrypt-auto renew -nvv --standalone > $log_file

if [ $? != 0 ]; then
    sudo echo Automated renewal failed: > $log_file
    exit 1
fi

sudo nginx -s reload

在/usr/local/bin/目录下添加两个软链

% ln  -s  /opt/letsencrypt/lestencrypt-renewal
% ln  -s  /opt/letsencrypt/lestencrypt-auto

通过crontab定时执行脚本即可定时自动更新网站证书。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值