Files
2026-07-13 12:31:34 +08:00

122 lines
4.3 KiB
Python

# -*- coding: utf-8 -*-
"""
@File : aliyun_cdn_api.py
@Date : 2024-07-24
"""
from alibabacloud_cdn20180510 import models as cdn_20180510_models
from alibabacloud_cdn20180510.client import Client as Cdn20180510Client
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_tea_util import models as util_models
from domain_admin.utils import uuid_util
from domain_admin.utils.open_api import aliyun_cas_api
def set_cdn_domain_ssl_certificate(
access_key_id, access_key_secret,
domain_name,
cert_id, cert_name):
"""
https://api.aliyun.com/api-tools/sdk/Cdn?spm=api-workbench.api_explorer.0.0.539f3761ceDHDv&version=2018-05-10&language=python-tea&tab=primer-doc
:param access_key_id:
:param access_key_secret:
:param domain_name:
:param cert_id:
:return:
"""
# 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考。
# 建议使用更安全的 STS 方式,更多鉴权访问方式请参见:https://help.aliyun.com/document_detail/378659.html。
config = open_api_models.Config(
# 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID。,
access_key_id=access_key_id,
# 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_SECRET。,
access_key_secret=access_key_secret,
)
# Endpoint 请参考 https://api.aliyun.com/product/Cdn
config.endpoint = 'cdn.aliyuncs.com'
client = Cdn20180510Client(config)
set_cdn_domain_sslcertificate_request = cdn_20180510_models.SetCdnDomainSSLCertificateRequest(
cert_id=cert_id,
cert_name=cert_name,
cert_type='cas',
domain_name=domain_name,
sslprotocol='on'
)
runtime = util_models.RuntimeOptions()
# 复制代码运行请自行打印 API 的返回值
client.set_cdn_domain_sslcertificate_with_options(set_cdn_domain_sslcertificate_request, runtime)
def set_cdn_domain_cert(
access_key_id, access_key_secret,
domain,
certificate, private_key):
"""
先上传,再部署
:param access_key_id:
:param access_key_secret:
:param domain:
:param certificate:
:param private_key:
:return:
"""
cert_name = uuid_util.get_uuid()
cert_id = aliyun_cas_api.upload_user_certificate(
access_key_id=access_key_id,
access_key_secret=access_key_secret,
cert_name=cert_name,
cert=certificate,
key=private_key
)
print('cert_id: ', cert_id)
set_cdn_domain_ssl_certificate(
access_key_id=access_key_id,
access_key_secret=access_key_secret,
domain_name=domain,
cert_id=cert_id,
cert_name=cert_name
)
def set_cdn_domain_ssl_certificate_v2(
access_key_id, access_key_secret,
domain_name,
certificate, private_key
):
"""
直接部署到CDN
https://api.aliyun.com/api-tools/sdk/Cdn?spm=api-workbench.api_explorer.0.0.539f3761ceDHDv&version=2018-05-10&language=python-tea&tab=primer-doc
:return:
"""
# 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考。
# 建议使用更安全的 STS 方式,更多鉴权访问方式请参见:https://help.aliyun.com/document_detail/378659.html。
config = open_api_models.Config(
# 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID。,
access_key_id=access_key_id,
# 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_SECRET。,
access_key_secret=access_key_secret,
)
# Endpoint 请参考 https://api.aliyun.com/product/Cdn
config.endpoint = 'cdn.aliyuncs.com'
client = Cdn20180510Client(config)
set_cdn_domain_sslcertificate_request = cdn_20180510_models.SetCdnDomainSSLCertificateRequest(
domain_name=domain_name,
cert_type='upload',
sslpri=private_key,
sslpub=certificate,
sslprotocol='on'
)
runtime = util_models.RuntimeOptions()
# 复制代码运行请自行打印 API 的返回值
client.set_cdn_domain_sslcertificate_with_options(set_cdn_domain_sslcertificate_request, runtime)