收藏文章 楼主

linux centos debain nginx自动 配置 https ssl 证书 软件 snapd

版块:自动化运维linux   类型:精华/置顶   作者:小绿叶技术博客   查看:2421   回复:0   获赞:4   时间:2022-03-06 21:39:56

nginx 自动ssl证书配置

 #    1. 安装ssl 证书软件

yum install -y snapd

apt install snapd

# 1.安装snapd 


yum reinstall -y snapd

# 重新安装 snapd,确保您的 snapd 版本是最新的


systemctl enable --now snapd.socket

# 安装后,需要启用管理主 snap 通信套接字的systemd单元


snap install core;

# 安装核心如果报错请检查第一步


snap refresh core   

# 刷新核心 


snap install --classic certbot

# 安装证书机器人

# sudo apt-get remove certbot、sudo dnf remove certbot或sudo yum remove certbot。

# 如果您使用apt、dnf或yum等操作系统包管理器安装了任何 Certbot 包 ,则应在安装 Certbot snap 之前将其删除,以确保在运行命令 certbot 时使用的是 snap,而不是从您的操作系统包安装经理。


 ln -s /var/lib/snapd/snap /snap

# 软连接(快捷方式)已经安装的软件 snap 到 要求的路径snap :经典限制要求在/snap或symlink下使用快照


snap install --classic certbot

# 安装证书机器人


ln -s /snap/bin/certbot /usr/bin/certbot

# 将证书机器人安装目录创建快捷方式到 运行目录  /usr/bin/certbot  (软连接)

# 删除快捷方式,删除软连接  rm -rf /usr/bin/certbot


 #    2. ubuntu  安装自动证书软件


#!/bin/bash
# 自动申请ssl 证书

InstallSnapd()
{
    sudo apt install snapd -y
    sudo systemctl enable --now snapd.socket
    sudo snap install core 
    sudo snap refresh core 
    sudo snap install --classic certbot
    sudo ln -s /var/lib/snapd/snap /snap
    sudo snap install --classic certbot
    sudo ln -s /snap/bin/certbot /usr/bin/certbot
}

RequestSSL()
{
    sudo certbot certonly --nginx
    # 只获取证书
}

main()
{
    InstallSnapd
    RequestSSL
}
main





 #    配置 nginx.conf  配置 ssl 证书


nano /etc/nginx/nginx.conf   

# 修改 nginx.conf 文件,在 http 板块 引入子配置文件 如: include /datadisk/eisc/wwwconf/nginxzhuanfa/*.conf; 


nano  /datadisk/eisc/wwwconf/nginxzhuanfa/www.conf

# 编辑子配置文件,内容如下:



###############################  简单配置案例 ##########################################


server{
    listen 80;
    server_name www.ddoss.cn ddoss.cn;

    location / {
        return 301 https://www.ddoss.cn$request_uri;
    }  
}
# 该板块范围内的 80 端口绑定的域名都 301 转跳到  https://www.ddoss.cn

server{
    listen 443 ssl;
    server_name ddoss.cn;
    #-------- 证书配置 ---------#
    ssl_certificate     /etc/letsencrypt/live/ddoss.cn/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/ddoss.cn/privkey.pem;
    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;
    #------- ssl 301 转跳 -----#
    location / {
        return 301 https://www.ddoss.cn$request_uri;
    }   
}
#该板块范围内的 443 端口绑定的域名都 301 转跳到  https://www.ddoss.cn

server{
    listen 443 ssl;
    server_name www.ddoss.cn;
    #-------- 证书配置 ---------#
    ssl_certificate     /etc/letsencrypt/live/www.ddoss.cn/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/www.ddoss.cn/privkey.pem;
    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;
    #------- ssl 301 转跳 -----#

    # location 这一部分  是配置 php 的 php-fpm ; 但是小绿叶技术博客有后端服务器,因此这里是代理。按照实际需求填写
    location / {
        proxy_pass http://10.1.1.3:62010;
        #---- 记录 IP 地址 ----#
        proxy_redirect off;
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;  
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

# sudo certbot certonly --nginx
# 自动证书 ssl 只获取证书, 链接: https://www.ddoss.cn/read-1052-1.html





















###############################  完整配置案例  ##########################################


server
{
    listen 443 ssl;
    listen 80;
    server_name eisc.cn www.eisc.cn;
    index index.php index.html index.htm default.php default.htm default.html;
    root /www/wwwroot/www;
    include enable-php-72.conf;
    include /www/server/panel/vhost/rewrite/www.eisc.cn.conf;
#-------- 证书配置 ---------#
ssl_certificate /www/wwwroot/www/ssl443/eisc.pem;
ssl_certificate_key /www/wwwroot/www/ssl443/eisc.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;
#------- ssl 301 转跳 -----#
    if ($server_port = 80){
          rewrite ^(/.*)$ https://$host$1 permanent;
       }
#---------------------------#
location /ccb/ {
    return 301 http://work.eisc.cn;
    proxy_pass https://www.eisc.cn;
    index  index.html index.php;
}
    location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
    {
        return 404;
    }
    location ~ \.well-known{
        allow all;
    }
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
        expires      30d;
        error_log off;
        access_log /dev/null;
    }
    location ~ .*\.(js|css)?$
    {
        expires      12h;
        error_log off;
        access_log /dev/null;
    }
    access_log  /www/wwwlogs/www.eisc.cn.log;
    error_log  /www/wwwlogs/www.eisc.cn.error.log;
}




 #    2. 申请ssl 证书


# certbot --nginx

# 自动配置nginx ssl 证书,会修改nginx 配置文件,输入电子邮箱,后回车确认

# 运行此命令以获取证书并让 Certbot 自动编辑您的 Nginx 配置以提供服务,只需一步即可打开 HTTPS 访问


certbot certonly --nginx

# 我们选择只获得nginx 证书,手动配置,将来源的ssl 证书删除,然后将自动下载的ssl 创建软链接(快捷方式)到原来的ssl 文件


# 1: Keep the existing certificate for now

# 暂时保留现有证书

# 2: Renew & replace the certificate (may be subject to CA rate limits)

# 更新和更换证书(可能受CA费率限制)  2


# agree in order to register with the ACME server. Do you agree?

# 同意在ACME服务器上注册。你同意吗?  y


# Would you be willing, once your first certificate is successfully issued, toshare your email address with the Electronic Frontier Foundation,

# 一旦您的第一份证书成功颁发,您是否愿意分享你的电子邮件地址与电子前沿基金会,成立Let's Encrypt项目的合作伙伴和机器人  no


# Select the appropriate numbers separated by commas and/or spaces, or leave input blank to select all options shown (Enter 'c' to cancel):

# 选择以逗号和/或空格分隔的适当数字,或保留输入 空白选择显示的所有选项(输入“c”取消):


# Successfully received certificate.

# Certificate is saved at: /etc/letsencrypt/live/www.eisc.cn/fullchain.pem

# Key is saved at:         /etc/letsencrypt/live/www.eisc.cn/privkey.pem


# 证书的位置如上图,自动修改nginx 子站点的 ssl 路径,每三个月自动更新ssl 


# 由于是链接的国外  R3 证书颁发机构,可能存在失败的情况,需要重试

 


rm -rf /eisc/www/ssl/eisc/eisc.pem

rm -rf /eisc/www/ssl/eisc/eisc.key

# 删除原有ssl 证书文件


ln -s /etc/letsencrypt/live/www.eisc.cn/fullchain.pem /eisc/www/ssl/eisc/eisc.pem

ln -s /etc/letsencrypt/live/www.eisc.cn/privkey.pem /eisc/www/ssl/eisc/eisc.key


nginx -s reload

# 重载nginx 配置文件








教程来源:https://www.cnblogs.com/hushuning/p/14842251.html









本文章最后由 admin2024-07-23 18:06 编辑

有些梦虽然遥不可及,但并不是不可能实现。 
回复列表
默认   热门   正序   倒序

回复:linux centos debain nginx自动 配置 https ssl 证书 软件 snapd

Powered by ddoss.cn 12.0

©2015 - 2024 ddoss

头像

用户名:

粉丝数:

签名:

资料 关注 好友 消息