注册HTTPS证书

注册HTTPS证书

  • 1. 从ACME获取脚本文件
  • 2. 运行shell脚本
  • 3. 安装socat
  • 4. 把acme.sh这个脚本添加到环境变量
    • 软连接
    • 直接添加到.bashrc
  • 5. 注册ACME账户
    • 6. 注册证书
    • 6.1. 首先把80端口打开
    • 6.2. 申请证书
  • 7. 部署到Flask上

1. 从ACME获取脚本文件

 wget https://get.acme.sh
 mv index.html acme.sh
 chmod 777 acme.sh

上述三行命令就不多解释了
在这里插入图片描述
注册HTTPS证书_第1张图片

2. 运行shell脚本

注册HTTPS证书_第2张图片
可以看到已经安装成功了
但是我们应该注意到有三行红字,我们按照要求安装socat

3. 安装socat

apt install socat

注册HTTPS证书_第3张图片

4. 把acme.sh这个脚本添加到环境变量

  • 这个操作主要是为了方便操作,如果不觉得麻烦也可以省略

软连接

ls
ln -s /root/.acme.sh/acme.sh /usr/local/bin/

直接添加到.bashrc

vim ~/.bashrc
然后添加下面的路径,注意修改自己正确的路径
export PATH="$PATH:/your/additional/path"

在这里插入图片描述

5. 注册ACME账户

acms.sh --register-account -m [email protected]

注册HTTPS证书_第4张图片

6. 注册证书

6.1. 首先把80端口打开

注册HTTPS证书_第5张图片

ufw allow 80

6.2. 申请证书

命令如下

acme.sh --issue -d yourdimian.top -standalone -k ec-256

如果无法注册

    如果默认CA无法颁发,则可以切换下列CA:
    切换 Let’s Encrypt:acme.sh --set-default-ca --server letsencrypt
    切换 Buypass:acme.sh --set-default-ca --server buypass
    切换 ZeroSSL:acme.sh --set-default-ca --server zerossl

大家申请时需要把域名换成自己的域名
加密方式可以自己去查一下,我用的时ec-256(256位ecc椭圆曲线)
注册HTTPS证书_第6张图片

  • 注意没打印证书之前都不算成功,CA可能会重复验证
  • 检查一下证书的目录
    在这里插入图片描述

7. 部署到Flask上

  • 本篇就不考虑使用apache了,使用python快速验证
  • 代码如下
from flask import Flask, render_template
import ssl

app = Flask(__name__)

@app.route('/')
def home():
    return render_template('index.html')

if __name__ == '__main__':
    ssl_cert = '/root/.acme.sh/your.cre'
    ssl_key = '/root/.acme.sh/your.key'
    # 创建SSL上下文
    ssl_context = ssl.SSLContext(ssl.PROTOCOL_TLS)
    ssl_context.load_cert_chain(ssl_cert, ssl_key)

    # 启动Flask应用程序,使用HTTPS和SSL上下文
    app.run(host='0.0.0.0', port='443',ssl_context=ssl_context)

看一下我们的网站是否可用
注册HTTPS证书_第7张图片
看一下证书
注册HTTPS证书_第8张图片

你可能感兴趣的:(Web,https,网络协议,http)