云服务器内容精选

  • 操作步骤 查询弹性云服务器详情 接口相关信息 URI格式: GET /v1/{project_id}/cloudservers/{server_id} 详情请参见“查询云服务器详情”。 请求示例 GET https://{endpoint}/v1/743b4c0428d945316666666666666666/cloudservers/893c7791-f1df-4c3d-8383-3caae9656c62 {endpoint}信息请从地区和终端节点获取。 响应示例 { "server": { "fault": null, "id": "b8b1b475-d6c9-4733-a3db-c3a526407286", "name": "ecs-test", "addresses": { "24bbb54c-659f-4141-8db9-a957e12b6ee8": [{ "version": "4", "addr": "192.168.0.16", "OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:37:de:ee", "OS-EXT-IPS:type": "fixed", "OS-EXT-IPS:port_id": "390b39b0-9a77-4ec2-ae1e-3af358f78999" }, { "version": "4", "addr": "121.xx.xx.64", "OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:37:de:ee", "OS-EXT-IPS:type": "floating", "OS-EXT-IPS:port_id": "390b39b0-9a77-4ec2-ae1e-3af358f78999" }] }, "flavor": { "disk": "0", "vcpus": "2", "ram": "4096", "id": "c6s.large.2", "name": "c6s.large.2" }, "accessIPv4": "", "accessIPv6": "", "status": "SHUTOFF", "progress": null, "hostId": "604599c4eeeaa05d8865749e4c97979e14d74c6639a08460051b3a97", "updated": "2021-02-18T12:38:39Z", "created": "2021-02-18T12:37:42Z", "metadata": { "metering.image_id": "6674d782-54ba-4f04-896d-95edd50f2eb9", "metering.imagetype": "gold", "metering.resourcespeccode": "c6s.large.2.linux", "image_name": "CentOS 8.2 64bit", "os_bit": "64", "cascaded.instance_extrainfo": "stopped_release_resource:True,pcibridge:1", "metering.resourcetype": "1", "vpc_id": "24bbb54c-659f-4141-8db9-a957e12b6ee8", "os_type": "Linux", "charging_mode": "0", "__support_agent_list": "ces" }, "tags": [], "description": "", "locked": false, "config_drive": "", "tenant_id": "0b3ade290700f3612f29c005b9d16666", "user_id": "0b3ade2a03800fec1f20c005d6116666", "key_name": null, "os-extended-volumes:volumes_attached": [{ "device": "/dev/vda", "bootIndex": "0", "id": "0dc13ef4-dcf6-49d2-8d34-395d94767917", "delete_on_termination": "true" }], "OS-EXT-STS:task_state": null, "OS-EXT-STS:power_state": 4, "OS-EXT-STS:vm_state": "stopped", "OS-EXT-SRV-ATTR:host": "604599c4eeeaa05d8865749e4c97979e14d74c6639a08460051b3a97", "OS-EXT-SRV-ATTR:instance_name": "instance-003ef12a", "OS-EXT-SRV-ATTR:hypervisor_hostname": "5edb1b44af14ebaaa784cfba010f78f113b1fd0865fef854c264a925", "OS-DCF:diskConfig": "MANUAL", "OS-EXT-AZ:availability_zone": "cn-east-3c", "os:scheduler_hints": { }, "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:ramdisk_id": "", "enterprise_project_id": "0", "OS-EXT-SRV-ATTR:user_data": null, "OS-SRV-USG:launched_at": "2021-02-18T12:37:57.000000", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:launch_index": 0, "host_status": "UP", "OS-EXT-SRV-ATTR:reservation_id": "r-q8xjhqzk", "OS-EXT-SRV-ATTR:hostname": "ecs-test", "OS-SRV-USG:terminated_at": null, "sys_tags": [{ "key": "_sys_enterprise_project_id", "value": "0" }], "security_groups": [{ "id": "d0d30ee2-5b34-44d4-b5a3-68b9d64e7286", "name": "Sys-WebServer" }], "image": { "id": "6674d782-54ba-4f04-896d-95edd50f2eb9" }, "hypervisor": null, "auto_terminate_time": "" } } 根据公网IP查询公网IP详情 接口相关信息 URI格式: GET /v1/{project_id}/publicips 详情请参见“查询弹性公网IP列表”。 请求示例 GET https://{endpoint}/v1/743b4c0428d945316666666666666666/publicips?public_ip_address=121.xx.xx.64 {endpoint}信息请从地区和终端节点获取。 public_ip_address参数传入的公网IP地址从1的返回信息中获取,从返回body体中的"server"下的"address"信息中找到"OS-EXT-IPS:type"为"floating"的"addr"字段,即为公网IP地址。 响应示例 { "publicips": [{ "id": "92597d39-b81d-42b0-8d02-fe8afe7ef076", "type": "5_bgp", "port_id": "390b39b0-9a77-4ec2-ae1e-3af358f78999", "public_ip_address": "121.xx.xx.64", "private_ip_address": "192.168.0.16", "status": "ACTIVE", "tenant_id": "0b3ade290700f3612f29c005b9d16666", "create_time": "2021-02-18 12:38:08", "bandwidth_id": "3a087bbd-0bcf-4401-9e2b-6a96fa2e3471", "bandwidth_name": "ecs-test-bandwidth-891e", "bandwidth_share_type": "PER", "bandwidth_size": 5, "profile": {}, "enterprise_project_id": "0", "ip_version": 4 }] }
  • Step1 创建OBS桶和文件夹 在OBS服务中创建桶和文件夹,用于存放样例数据集以及训练代码。如下示例中,请创建命名为“test-modelarts”的桶,并创建如表1所示的文件夹。 创建OBS桶和文件夹的操作指导请参见创建桶和新建文件夹。 请确保您使用的OBS与ModelArts在同一区域。 表1 OBS桶文件夹列表 文件夹名称 用途 obs://test-modelarts/ascend/demo-code/ 用于存储Ascend训练脚本文件。 obs://test-modelarts/ascend/demo-code/run_ascend/ 用于存储Ascend训练脚本的启动脚本。 obs://test-modelarts/ascend/log/ 用于存储训练日志文件。
  • 涉及接口 用户用例操作包括,创建测试用例、更新测试用例、批量删除测试用例、获取测试用例详情、批量执行用例接口、批量更新测试用例结果,涉及接口如下: 创建自定义测试服务类型用例:新建用例进行测试。 更新自定义测试服务类型用例:修改用例信息。 批量删除自定义测试服务类型用例:可同时删除多个用例。 获取测试用例详情:单个查询用例详情。 批量执行测试用例:同时执行多个测试用例。 批量更新测试用例结果:用例结果产生后,同时更新多个测试用例结果。
  • 代码样例 hbase.root.logger=INFO,console,RFA //hbase客户端日志输出配置,console:输出到控制台;RFA:输出到日志文件 hbase.security.logger=DEBUG,console,RFAS //hbase客户端安全相关的日志输出配置,console:输出到控制台;RFAS:输出到日志文件 hbase.log.dir=/var/log/Bigdata/hbase/client/ //日志路径,根据实际路径修改,但目录要有写入权限 hbase.log.file=hbase-client.log //日志文件名 hbase.log.level=INFO //日志级别,如果需要更详细的日志定位问题,需要修改为DEBUG,修改完需要重启进程才能生效 hbase.log.maxbackupindex=20 //最多保存的日志文件数目 # Security audit appender hbase.security.log.file=hbase-client-audit.log //审计日志文件命令
  • Step1 创建OBS桶和文件夹 在OBS服务中创建桶和文件夹,用于存放样例数据集以及训练代码。需要创建的文件夹列表如表1所示,示例中的桶名称“test-modelarts” 和文件夹名称均为举例,请替换为用户自定义的名称。 创建OBS桶和文件夹的操作指导请参见创建桶和新建文件夹。 请确保您使用的OBS与ModelArts在同一区域。 表1 OBS桶文件夹列表 文件夹名称 用途 “obs://test-modelarts/tensorflow/code/” 用于存储训练脚本文件。 “obs://test-modelarts/tensorflow/data/” 用于存储数据集文件。 “obs://test-modelarts/tensorflow/log/” 用于存储训练日志文件。
  • Step3 准备训练脚本并上传至OBS 准备本案例所需的训练脚本mnist.py,并上传至OBS桶的“obs://test-modelarts/tensorflow/code/”文件夹下。 mnist.py文件内容如下: import argparse import tensorflow as tf parser = argparse.ArgumentParser(description='TensorFlow quick start') parser.add_argument('--data_url', type=str, default="./Data", help='path where the dataset is saved') args = parser.parse_args() mnist = tf.keras.datasets.mnist (x_train, y_train), (x_test, y_test) = mnist.load_data(args.data_url) x_train, x_test = x_train / 255.0, x_test / 255.0 model = tf.keras.models.Sequential([ tf.keras.layers.Flatten(input_shape=(28, 28)), tf.keras.layers.Dense(128, activation='relu'), tf.keras.layers.Dropout(0.2), tf.keras.layers.Dense(10) ]) loss_fn = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True) model.compile(optimizer='adam', loss=loss_fn, metrics=['accuracy']) model.fit(x_train, y_train, epochs=5)
  • 概述 配置审计服务提供合规规则包的示例模板,帮助用户通过示例模板快速创建合规规则包,每个合规规则包的示例模板中包含都多个合规规则,也就是配置审计服务的预设策略,每个预设策略的具体说明请参见系统内置预设策略。您可以通过列举预定义合规规则包模板接口查看所有的合规规则包示例模板。 配置审计服务控制台当前提供如下合规规则包的示例模板: 等保三级2.0规范检查的标准合规包 适用于金融行业的合规实践 华为云网络安全合规实践 适用于统一身份认证服务(IAM)的最佳实践 适用于云监控服务(CES)的最佳实践 适用于计算服务的最佳实践 适用于弹性云服务器(ECS)的最佳实践 适用于弹性负载均衡(ELB)的最佳实践 适用于管理与监管服务的最佳实践 适用于云数据库(RDS)的最佳实践 适用于弹性伸缩(AS)的最佳实践 适用于云审计服务(CTS)的最佳实践 适用于人工智能与机器学习场景的合规实践 适用于自动驾驶场景的合规实践 资源开启公网访问最佳实践 适用于日志和监控的最佳实践 适用于空闲资产管理的最佳实践 华为云架构可靠性最佳实践 适用于中国香港金融管理局的标准合规包 适用于中小企业的ENISA的标准合规包 适用于SWIFT CSP的标准合规包 适用于德国云计算合规标准目录的标准合规包 适用于PCI-DSS的标准合规包 适用于医疗行业的合规实践 网络及数据安全最佳实践 父主题: 合规规则包示例模板
  • 操作场景 开启级联授权功能的集群极大地提升了鉴权易用性,用户只需在Ranger页面上对业务表进行一次授权,系统就会自动细粒度关联数据存储源的权限,不需要感知表的存储路径,无需进行二次授权。同时也补齐了基于存算分离授权功能缺陷,可以在Ranger上实现对存算分离表的授权鉴权。Hive表的级联授权功能主要体现为: 开启Ranger级联授权后,Ranger中创建策略对表授权时,只需创建表的Hive策略,无需对表存储源进行二次授权。 针对已授权的库/表,当存储源发生变动时,周期同步关联新存储源HDFS/OBS,生成对应权限。 不支持对视图表进行级联授权。 仅支持对数据库/表进行级联授权操作,不支持对分区做级联权限,如果分区路径不在表路径下,则需要用户手动授权分区路径。 不支持对Hive Ranger策略中的“Deny Conditions”进行级联授权,即“Deny Conditions”的权限仅限制表权限,不能生成HDFS/OBS存储源端的权限。 不支持在Hive Ranger中创建“database”为“*”且“table”为“*”的策略。 级联授权生成的HDFS/OBS存储源端的权限弱于HDFS Ranger策略的权限,即如果已经对表的HDFS存储源设置了HDFS Ranger权限,则级联权限将不会生效。 不支持对存储源为OBS的表级联授权后直接进行alter操作,需要给对应用户组额外授予OBS表路径的父目录的“Read”和“Write”权限才能使用alter功能,且用户组仅由数字0~9、字母a~Z、下划线或#组成,且最大长度为52个字符,否则将导致策略添加失败,可参考用户组管理修改用户组信息。 针对OBS存储源,需满足以下条件,否则OBS表将授权失败: 集群中必须已安装Guardian服务。 OBS表的授权只能针对用户组。 仅支持安全模式集群的OBS级联授权。
  • 操作步骤 使用Ranger管理员用户rangeradmin登录Ranger管理页面,具体操作可参考登录Ranger WebUI界面。 在首页中单击“EXTERNAL AUTHORIZATION”区域的组件插件名称“OBS”。 单击“Add New Policy”,添加OBS权限控制策略。 根据业务需求配置相关参数。 表1 OBS权限参数 参数名称 描述 Policy Name 策略名称,可自定义,不能与本服务内其他策略名称重复。 Policy Label 为当前策略指定一个标签,可以根据这些标签搜索报告和筛选策略。 Resource Path 资源路径,配置当前策略适用的OBS路径文件夹,可填写多个值,不支持使用通配符“*”。且配置的OBS路径文件夹必须是已存在的,否则会授权失败。 OBS默认开启权限的递归(且不支持修改),无任何权限的子目录会默认继承父目录所有的权限。 Description 策略描述信息。 Audit Logging 是否审计此策略。 Allow Conditions 策略允许条件,配置本策略内允许的权限。 “Select Group”列选择已创建好的需要授予权限的用户组(配置“Select Role”和“Select User”将不会生效) 单击“Add Permissions”,添加对应权限。 Read:读权限 Write:写权限 Select/Deselect All:全选/取消全选 如需添加多条权限控制规则,可单击按钮添加。如需删除权限控制规则,可单击按钮删除。 例如,为用户组“hs_group1”(该用户组仅由数字0~9、字母a~Z、下划线或#组成,且最大长度为52个字符,否则将导致策略添加失败)添加“obs://hs-test/user/hive/warehouse/o4”表的读写权限,配置如下: 单击“Add”,在策略列表可查看策略的基本信息。等待策略生效后,验证相关权限是否正常。 如果不再使用策略,可单击按钮删除策略。
  • Hive数据脱敏 Ranger支持对Hive数据进行脱敏处理(Data Masking),可对用户执行的select操作的返回结果进行处理,以屏蔽敏感信息。 登录Ranger WebUI界面,在首页中单击“HADOOP SQL”区域的“Hive” 在“Masking”页签单击“Add New Policy”,添加Hive权限控制策略。 根据业务需求配置相关参数。 表3 Hive数据脱敏参数 参数名称 描述 Policy Name 策略名称,可自定义,不能与本服务内其他策略名称重复。 Policy Conditions IP过滤策略,可自定义,配置当前策略适用的主机节点,可填写一个或多个IP或IP段,并且IP填写支持“*”通配符,例如:192.168.1.10,192.168.1.20或者192.168.1.*。 Policy Label 为当前策略指定一个标签,您可以根据这些标签搜索报告和筛选策略。 Hive Database MRS 3.3.0之前版本,配置当前策略适用的Hive中数据库名称。 MRS 3.3.0及之后版本,配置当前策略适用的Hive中数据库名称,支持设置多个数据库名,并且填写支持“*”通配符,例如:aa、a*、*b、a*b或者*。 Hive Table MRS 3.3.0之前版本,配置当前策略适用的Hive中的表名称。 MRS 3.3.0及之后版本,配置当前策略适用的Hive中的表名称,支持设置多个表名,并且填写支持“*”通配符,例如:aa、a*、*b、a*b或者*。 Hive Column MRS 3.3.0之前版本,可添加列名。 MRS 3.3.0及之后版本,可添加列名,支持设置多个列名,并且填写支持“*”通配符,例如:aa、a*、*b、a*b或者*。 Description 策略描述信息。 Audit Logging 是否审计此策略。 Mask Conditions 在“Select Role”、“Select Group”、“Select User”列选择已创建好的需要授予权限的对象,单击“Add Conditions”,添加策略适用的IP地址范围,然后在单击“Add Permissions”,勾选“select”权限。 单击“Select Masking Option”,选择数据脱敏时的处理策略: Redact:用x屏蔽所有字母字符,用0屏蔽所有数字字符。 Partial mask: show last 4:只显示最后的4个字符,其他用x代替。 Partial mask: show first 4:只显示开始的4个字符,其他用x代替。 Hash:用值的哈希值替换原值,采用的是hive的内置mask_hash函数,只对string、char、varchar类型的字段生效,其他类型的字段会返回NULL值。 Nullify:用NULL值替换原值。 Unmasked(retain original value):原样显示。 Date: show only year:仅显示日期字符串的年份部分,并将月份和日期默认为01/01。 Custom:可使用任何有效返回与被屏蔽的列中的数据类型相同的数据类型来自定义策略。 如需添加多列的脱敏策略,可单击按钮添加。 单击“Add”,在策略列表可查看策略的基本信息。 用户通过Hive客户端对配置了数据脱敏策略的表执行select操作,系统将对数据进行处理后进行展示。 处理数据需要用户同时具有向Yarn队列提交任务的权限。
  • 操作步骤 使用Ranger管理员用户rangeradmin登录Ranger管理页面,具体操作可参考登录Ranger WebUI界面。 在首页中单击“HDFS”区域的组件插件名称,例如“hacluster”。 单击“Add New Policy”,添加HDFS权限控制策略。 根据业务需求配置相关参数。 表1 HDFS权限参数 参数名称 描述 Policy Name 策略名称,可自定义,不能与本服务内其他策略名称重复。 Policy Conditions IP过滤策略,可自定义,配置当前策略适用的主机节点,可填写一个或多个IP或IP段,并且IP填写支持“*”通配符,例如:192.168.1.10,192.168.1.20或者192.168.1.*。 Policy Label 为当前策略指定一个标签,可以根据这些标签搜索报告和筛选策略。 Resource Path 资源路径,配置当前策略适用的HDFS路径文件夹或文件,可填写多个值,支持使用通配符“*”(例如“/test/*”)。 如需子目录继承上级目录权限,可打开递归开关按钮。 如果父目录开启递归,同时子目录也配置了策略,以子目录策略为准。 non-recursive:关闭递归 recursive:打开递归 Description 策略描述信息。 Audit Logging 是否审计此策略。 Allow Conditions 策略允许条件,配置本策略内允许的权限及例外,例外条件优先级高于正常条件。 在“Select Role”、“Select Group”、“Select User”列选择已创建好的需要授予权限的Role、用户组或用户,单击“Add Conditions”,添加策略适用的IP地址范围,单击“Add Permissions”,添加对应权限。 Read:读权限 Write:写权限 Execute:执行权限 Select/Deselect All:全选/取消全选 如需让当前条件中的用户或用户组管理本条策略,可勾选“Delegate Admin”使这些用户或用户组成为受委托的管理员。被委托的管理员可以更新、删除本策略,还可以基于原始策略创建子策略。 如需添加多条权限控制规则,可单击按钮添加。如需删除权限控制规则,可单击按钮删除。 Exclude from Allow Conditions:配置排除在允许条件之外的例外规则。 Deny All Other Accesses 是否拒绝其它所有访问。 True:拒绝其它所有访问。 False:设置为false,可配置Deny Conditions。 Deny Conditions 策略拒绝条件,配置本策略内拒绝的权限及例外,配置方法与“Allow Conditions”类似,拒绝条件的优先级高于“Allow Conditions”中配置的允许条件。 Exclude from Deny Conditions:配置排除在拒绝条件之外的例外规则。 例如为用户“testuser”添加“/user/test”目录的写权限,配置如下: 表2 设置权限 任务场景 角色授权操作 设置HDFS管理员权限 在首页中单击“HDFS”区域的组件插件名称,例如“hacluster”。 选择“Policy Name”为“all - path”的策略,单击按钮编辑策略。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 设置用户执行HDFS检查和HDFS修复的权限 在“Resource Path”配置文件夹或文件。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 单击“Add Permissions”,勾选“Read”和“Execute”。 设置用户读取其他用户的目录或文件的权限 在“Resource Path”配置文件夹或文件。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 单击“Add Permissions”,勾选“Read”和“Execute”。 设置用户在其他用户的文件写入数据的权限 在“Resource Path”配置文件夹或文件。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 单击“Add Permissions”,勾选“Write”和“Execute”。 设置用户在其他用户的目录新建或删除子文件、子目录的权限 在“Resource Path”配置文件夹或文件。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 单击“Add Permissions”,勾选“Write”和“Execute”。 设置用户在其他用户的目录或文件执行的权限 在“Resource Path”配置文件夹或文件。 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。 单击“Add Permissions”,勾选“Execute”。 设置子目录继承上级目录权限 在“Resource Path”配置文件夹或文件。 打开递归开关按钮,“Recursive”即为打开递归。 (可选)添加策略有效期。在页面右上角单击“Add Validity period”,设置“Start Time”和“End Time”,选择“Time Zone”。单击“Save”保存。如需添加多条策略有效期,可单击按钮添加。如需删除策略有效期,可单击按钮删除。 单击“Add”,在策略列表可查看策略的基本信息。等待策略生效后,验证相关权限是否正常。 如需禁用某条策略,可单击按钮编辑策略,设置策略开关为“Disabled”。 如果不再使用策略,可单击按钮删除策略。
  • 生成设备证书 使用OpenSSL工具为设备证书生成密钥对(设备私钥): openssl genrsa -out deviceCert.key 2048 使用设备密钥对,生成证书签名请求文件: openssl req -new -key deviceCert.key -out deviceCert.csr 生成证书签名请求文件时,要求填写证书唯一标识名称(Distinguished Name,DN)信息,参数说明如下表2所示。 表3 证书签名请求文件参数说明 提示 参数名称 取值样例 Country Name (2 letter code) []: 国家/地区 CN State or Province Name (full name) []: 省/市 GuangDong Locality Name (eg, city) []: 城市 ShenZhen Organization Name (eg, company) []: 组织机构(或公司名) Huawei Technologies Co., Ltd. Organizational Unit Name (eg, section) []: 机构部门 Cloud Dept. Common Name (eg, fully qualified host name) []: CA名称(CN) Huawei IoTDP CA Email Address []: 邮箱地址 / A challenge password []: 证书密码,如您不设置密码,可以直接回车 / An optional company name []: 可选公司名称,如您不设置,可以直接回车 / 使用CA证书、CA证书私钥和CSR文件创建设备证书(deviceCert.crt)。 openssl x509 -req -in deviceCert.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out deviceCert.crt -days 36500 -sha256 生成设备证书用到的“rootCA.crt”和“rootCA.key”这两个文件,为“制作CA证书”中所生成的两个文件,且需要完成“上传并验证CA证书”。 “-days”后的参数值指定了该证书的有效天数,此处示例为36500天,您可根据实际业务场景和需要进行调整。
  • 上传并验证CA证书 登录设备发放控制台,进入“证书”界面,单击右上角“上传CA证书”,填写“证书名称”并上传上述“制作CA证书”步骤后生成的“CA证书(rootCA.crt文件)”,单击“确定”。 验证步骤1中上传的CA证书,只有成功验证证书后该证书方可使用。 为验证证书生成密钥对。 openssl genrsa -out verificationCert.key 2048 获取随机验证码。 利用此验证码生成证书签名请求文件CSR。 openssl req -new -key verificationCert.key -out verificationCert.csr CSR文件的Common Name (e.g. server FQDN or YOUR name) 需要填写前一过程中获取到的随机验证码。 使用CA证书、CA证书私钥和CSR文件创建验证证书(verificationCert.crt)。 openssl x509 -req -in verificationCert.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out verificationCert.crt -days 500 -sha256 生成验证证书用到的“rootCA.crt”和“rootCA.key”这两个文件,为“制作CA证书”中所生成的两个文件。 “-days”后的参数值指定了该证书的有效天数,此处示例为500天,您可根据实际业务场景和需要进行调整。 上传验证证书进行验证。
  • 制作CA证书 在浏览器中访问这里,下载并进行安装OpenSSL工具,安装完成后配置环境变量。 在 D:\certificates 文件夹下,以管理员身份运行cmd命令行窗口。 生成密钥对(rootCA.key): 生成“密钥对”时输入的密码在生成“证书签名请求文件”、“CA证书”,“验证证书”以及“设备证书”时需要用到,请妥善保存。 openssl genrsa -des3 -out rootCA.key 2048 使用密钥对生成证书签名请求文件: 生成证书签名请求文件时,要求填写证书唯一标识名称(Distinguished Name,DN)信息,参数说明如下表1 所示。 表1 证书签名请求文件参数说明 提示 参数名称 取值样例 Country Name (2 letter code) []: 国家/地区 CN State or Province Name (full name) []: 省/市 GuangDong Locality Name (eg, city) []: 城市 ShenZhen Organization Name (eg, company) []: 组织机构(或公司名) Huawei Technologies Co., Ltd. Organizational Unit Name (eg, section) []: 机构部门 Cloud Dept. Common Name (eg, fully qualified host name) []: CA名称(CN) Huawei IoTDP CA Email Address []: 邮箱地址 / A challenge password []: 证书密码,如您不设置密码,可以直接回车 / An optional company name []: 可选公司名称,如您不设置,可以直接回车 / openssl req -new -key rootCA.key -out rootCA.csr 生成CA证书(rootCA.crt): openssl x509 -req -days 50000 -in rootCA.csr -signkey rootCA.key -out rootCA.crt “-days”后的参数值指定了该证书的有效天数,此处示例为50000天,您可根据实际业务场景和需要进行调整。
  • 连接鉴权 MQTT.fx 是目前主流的MQTT桌面客户端,它支持 Windows, Mac, Linux,可以快速验证是否可以与设备发放服务进行连接并发布或订阅消息。 本文主要介绍 MQTT.fx 如何与华为设备发放交互,其中设备发放服务MQTT的南向接入地址请参考获取终端节点。 下载 MQTT.fx(默认是64位操作系统,如果是32位操作系统,单击此处下载 MQTT.fx ),安装MQTT.fx工具。 打开 MQTT.fx 客户端程序,单击“设置”。 填写 Connection Profile 相关信息和 General 信息。其中General 信息可以用工具默认的参数配置。 填写 User Credentials 信息。 其中Username 和Password 参数参考MQTT CONNECT连接鉴权参数说明。 选择开启 SSL/TLS,勾选CA certificate file,CA Certificate File指定为物联网平台根证书(请先下载物联网平台的根证书,解压后,选择其中c或java目录下PEM后缀的文件)的本地路径。 完成以上步骤后,单击“Apply”和“OK”保存,并在配置文件框中选择刚才创建的文件名,单击“Connect”,当右上角圆形图标为绿色时,说明连接设备发放服务成功,可进行订阅(Subscribe)和消息推送(Publish)操作。