跳转至

使用Let's Encrypt 进行泛解析。

acme.sh的方式

获取acme脚本如下,注意报错,安装依赖 - apt install socat&&curl https://get.acme.sh | sh

  • source ~/.bashrc

不行就去.acme.sh/里面吧

使用dnspod api

下面是dddd.im的脚本。

export DP_Id="182010"  &&
export DP_Key="xxxxxxx"  &&
./acme.sh --issue --dns dns_dp -d '*.0x3f.io'
./acme.sh  --installcert  -d  '*.0x3f.io'   \
        --key-file   /usr/local/nginx/conf/ssl/0x3f.io.key \
        --fullchain-file /usr/local/nginx/conf/ssl/0x3f.io.cer \
        --reloadcmd  "/usr/local/nginx/sbin/nginx -s reload" 

使用webroot方式

acme.sh  --issue -d blog.lomot.cn  --webroot  /var/www/blog.lomot.cn/

开启自动更新

acme.sh --upgrade --auto-upgrade
acme.sh --renew -d '*.168seo.cn' --force

下面是一些OpenSSL的东西

转载:https://www.jianshu.com/p/bc18038cc9c8 crt和cer是一个东西

# 转换为perm文件
openssl pkcs12 -in xxx.pfx -nodes -out xxx.pem 
openssl x509 -inform der -in xxx.cer -out xxx.pem

# 提取密钥对,生成打文件可以给nginx用了,不过提取需要密码
openssl pkcs12 -in xxx.pfx -clcerts -nokeys -out xxx.crt
openssl pkcs12 -in xxx.pfx -nocerts -nodes -out xxx.key
# 验证一下
openssl s_server -www -accept 443 -cert xxx.crt -key xxx.key

# 从密钥提取私钥 头部 -----BEGIN RSA PUBLIC KEY-----
openssl rsa -in  xxx.key -out private.pem
# 从密钥对提取公钥 头部:-----BEGIN RSA PRIVATE KEY-----
openssl rsa -in private.pem -RSAPublicKey_out -out public.pem
# 从密钥对提取公钥 头部:-----BEGIN PUBLIC KEY-----
openssl rsa -in private.key -pubout -out public.key
python相关代码
import rsa

# 生成密钥
(pubkey, privkey) = rsa.newkeys(1024)

# 保存密钥
with open('public.pem', 'w+') as f:
    f.write(pubkey.save_pkcs1().decode())

with open('private.pem', 'w+') as f:
    f.write(privkey.save_pkcs1().decode())

# 导入密钥
with open('public.pem', 'r') as f:
    pubkey = rsa.PublicKey.load_pkcs1(f.read().encode())

with open('private.pem', 'r') as f:
    privkey = rsa.PrivateKey.load_pkcs1(f.read().encode())

    # 明文
    message = '123123ssss'

    # 公钥加密
    crypto = rsa.encrypt(message.encode(), pubkey)
    # print(crypto)

    # 私钥解密
    message = rsa.decrypt(crypto, privkey).decode()
    print(message)


评论