免费https证书certbot的配置和使用

发布时间 2023-10-20 13:41:46作者: YURainnn

CertBot配置免费HTTPS证书

1.域名

首先从云服务器商注册一个域名

在云服务器商提供的控制台,购买服务器后,申请域名并且执行域名解析

2.服务器安装和配置nginx

服务器安装nginx

  1. 访问nginx官网

  2. 下载nginx包

    wgte https://nginx.org/download/nginx-VERSION-YOU-WANT.tar.gz

  3. 在服务器上,安装解压nginx所需的c++插件包

yum install gcc-c++
 
yum install -y pcre pcre-devel
 
yum install -y zlib zlib-devel
 
yum install -y openssl openssl-devel

插件作用

1.gcc 可以编译 C,C++,Ada,Object C和Java等语言(安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境)

2.pcre pcre-devel pcre是一个perl库,包括perl兼容的正则表达式库,nginx的http模块使用pcre来解析正则表达式,所以需要安装pcre库

3.zlib zlib-devel zlib库提供了很多种压缩和解压缩方式nginx使用zlib对http包的内容进行gzip,所以需要安装

4.openssl openssl-devel OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。

5.nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http),所以需要在 Centos 安装 OpenSSL 库

4 .解压安装和配置

-- 解压进入目录
tar xvf nginx-1.21.6.tar.gz
cd nginx-1.21.6

-- 配置https模块
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
-- 编译
make
-- 安装
make install
--设置开机启动服务文件
vim /lib/systemd/system/nginx.service

[Unit]
Description=nginx service
After=network.target
 
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true
 
[Install]
WantedBy=multi-user.target

-- 加入开机启动
systemctl enable nginx.service

5.配置域名nginx反向代理

nginx默认配置nginx.conf

# For more information on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/
#   * Official Russian Documentation: http://nginx.org/ru/docs/

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
#多虚拟主机引入配置的文件夹
include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 1024;
}

#各种代理配置
http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 4096;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;
    #多虚拟主机引入的配置文件夹
    include /etc/nginx/conf.d/*.conf;
#默认的虚拟主机
    server {
        listen       80;
        listen       [::]:80;
        server_name  _;
        root         /usr/share/nginx/html;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        error_page 404 /404.html;
        location = /404.html {
        }

        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
        }
    }


}


conf.d文件夹中虚拟服务器配置 xxxx.conf

一般是域名+.conf 例如xxx.blog.com.conf

server{
	server_name 域名.com;
	location /{
		proxy_pass http://localhost:8080/;
	}
	}
 

#### 这一部分注释的是原始不用配置的,certbot获取证书时会自动配置

   # listen 443 ssl; # managed by Certbot
   # ssl_certificate /etc/***; # managed by Certbot
   # ssl_certificate_key /***; # managed by Certbot
   # include /etc/***; # managed by Certbot
   # ssl_dhparam /etc/***; # managed by Certbot

}
#server{
#    if ($host = 域名.com) {
#        return 301 https://$host$request_uri;
#    } # managed by Certbot


#	server_name 域名.com;
#    listen 80;
#    return 404; # managed by Certbot


#}

3.获取HTTPS证书

免费的https证书颁发网站:https://certbot.eff.org/

1.主页:

2.选择你的https在哪里使用

这里选择nginxcentos7 也可以其他选择

3.根据提示,进入ssh

4.安装snapd

5.安装

安装命令

在 CentOS 7 中添加 EPEL
sudo yum install epel-release

sudo yum install snapd

sudo systemctl enable --now snapd.socket

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

确保snapd是最新
sudo snap install core
sudo snap refresh core

6.返回certbot安装certbot

安装命令

sudo snap install --classic certbot

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

#执行certbot获取https证书,并自动配置你的conf.d文件夹中,虚拟主机配置下的https证书配置
sudo certbot --nginx
#执行这一步后,1.需要填写一个邮箱,用以接受证书相关的信息推送
#第二个需要填写的,原文
#Select the appropriate numbers separated by commas and/or spaces, or leave input
#blank to select all options shown (Enter 'c' to cancel): 填写一个空格就可以

# 测试自动续期
sudo certbot renew --dry-run

至此安装完成,部署项目运行并测试即可