122 lines
4.3 KiB
Python
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)
|