我们提供了合约体验链方便您快速体验区块链功能,主要介绍如何在体验链上创建证书和账户的相关操作。
前置条件
您已经开通阿里云 BaaS 服务,并登录阿里云。
申请体验链权限
登录 阿里云 BaaS 控制台。
在 蚂蚁区块链 > 概览 页面,选择合约体验链,单击 免费试用。
之后,您可以在该体验链上执行以下操作:
申请TLS连接证书
申请免费试用体验链后,平台将引导您进行TLS连接证书的申请操作。
BaaS 平台提供 自动生成 和 手动生成 两种方式生成证书和密钥。推荐使用安全、便捷的自动生成方式。
证书有效期为三年,过期后请重新申请。
若选择 自动生成,需要完成以下步骤:
填写必要的申请信息,单击 申请。
下载私钥和证书。
说明私钥只有一次下载机会,务必妥善保存,离开页面后不能再找回。
若选择 手动生成,需要完成以下步骤:
上传本地生成的证书请求文件
client.csr
,单击 申请。本地生成私钥client.key
和证书请求client.csr
的具体步骤,参见本文 本地生成证书请求和公私钥对。
创建链上账户
单击体验链卡片右上角的更多按钮 ··· ,在弹出的菜单栏中单击创建账户。
在弹窗中,选择一种创建方式后,根据页面提示完成创建。
平台提供手动创建和自动创建两种方式创建账户,推荐使用安全且便捷的自动创建方式。
若选择 手动创建,请按以下步骤完成创建。
选择 手动创建 的创建方式后,填写账户名称、账户公钥、账户恢复公钥的信息。
完成后,单击 申请。
说明您可使用客户端工具便捷生成和管理公私钥,关于本地生成公私钥对和恢复公私钥对的具体步骤,参见本文的 本地生成证书请求和公私钥对。
若选择 自动创建,则需要您妥善保存账号相关的密钥信息。
选择 自动创建 的创建方式后,填写账户名称、账户密码及账户恢复密码的信息。
完成后,单击 申请。
创建成功后,请在弹窗中下载账户对应的私钥、公钥对及恢复私钥、恢复公钥,后续应用开发时需要使用到。
重要私钥只有一次下载机会,请您妥善保管账户的私钥信息,离开此页面后无法再次下载。
调试并部署合约
完成 TLS 连接证书申请和链上账户创建的操作后,您可以单击免费体验链上的调试合约,进入平台提供的 Cloud IDE 在线合约开发工具的页面。Cloud IDE 支持多语言类型的合约开发、编译、调试、部署和调用的能力,相关操作可参见使用Cloud IDE。
SDK连接
证书、账户申请成功后,单击体验链右上角更多按钮 ··· 依次下载签名证书、下载 SDK、下载根证书(trustCa)、下载根证书(ca.crt),并把相应的组建和证书保存到本地,即可为后续合约链开发做准备。有关合约链开发配置,请参见 开发指南。
区块链浏览器
使用SDK与体验链建立连接并发起链上交易后,单击体验链上的查看链详情,即可进入区块链浏览器页面,支持在该页面查看链相关的基本信息,包括业务总量统计、网络状态、节点详情、当前块高,以及对应交易量变化、区块和交易等。
有关区块链浏览器的使用说明,请参见查看区块链浏览器。
本地生成证书请求和公私钥对
使用 OpenSSL
macOS 系统无需手动安装 OpenSSL。
安装 OpenSSL
在 Windows 操作系统中安装 OpenSSL 步骤如下:
前往 OpenSSL 下载页面(英文),找到 1.0.2o 版本(推荐)并下载安装包,或单击下方下载链接:
32 位的 OpenSSL 安装包(直接下载)
64 位的 OpenSSL 安装包(直接下载)
打开命令行工具,进入 OpenSSL 安装路径的
bin
目录。准备环境变量,在命令行中输入
set OPENSSL_CONF=open
ssl
.cfg
。
生成证书请求
使用 OpenSSL 制作私钥和证书请求。
务必记住此处设置的私钥密码,并妥善保存私钥文件。
openssl req -newkey rsa:2048 -keyout key_pkcs10.pem -out csr.pem
Generatinga 2048 bit RSA private key
.........................................+++
..................................+++
writingnew private key to 'key_pkcs10.pem'
EnterPEM pass phrase:
Verifying- Enter PEM pass phrase:
-----
在该命令执行过程中,系统会要求您填写如下信息:
Country Name (2 letter code):使用国际标准组织(ISO)国码格式,填写 2 个字母的国家代号,如中国填写 CN。
State or Province Name (full name):省份,例如填写 Zhejiang。
Locality Name (eg, city):城市,例如填写 Hangzhou。
Organization Name (eg, company):组织单位,例如填写公司名的拼音。
Organizational Unit Name (eg, section):例如填写 IT Dept。
Common Name (eg, your websites domain name):进行 SSL 加密的网站域名。
说明这里并不是单指您的域名,而是直接使用 SSL 的网站名称,例如:pay.****.com。
不同的 URL 在这里被定义为不同的网站域名,例如:****.com、www.****.com、pay.****.com 会被识别为 3 个不同的网站域名。
这里的网站域名应该和邮件客户端软件设置的 SMTP/POP3 服务器名称一致。
Email Address:邮件地址,选填。
A challenge password:选填。
An optional company name:选填。
使用本地密钥服务
为方便使用,BaaS 平台提供 Java 版本的本地密钥服务。
启动密钥服务
准备 Java 运行环境,1.7 版本或以上。
下载密钥生成工具(单击此处 下载)。
运行命令
java -jar baas-crypto-tool-1.0.0.jar --server.port=8080
启动密钥服务。
生成证书请求
启动密钥服务之后,在浏览器中访问https://localhost:8080/api/crypto/generateTlsKey?algo=rsa&isPkcs8=true&password=${password}
生成 tlskey.zip
文件包。解压该 .zip 包后得到 client.csr
和 client.key
。其中,client.key
用于连接区块链,client.csr
需要通过 BaaS 平台界面来进行签名,参见 申请体验链权限 章节。
请把链接中的 ${password} 替换为您自己的密码。
生成公私钥对
启动密钥服务之后,在浏览器中访问https://localhost:8080/api/crypto/generateUserKey?algo=ec&isPkcs8=true&password=${password}
生成 userkey.zip
文件包。解压该 .zip 包后得到 user.key
和 pub.txt
。其中,user.key
为用户私钥,pub.txt
中的内容为用户公钥。
可以执行该命令两次,生成两个公私钥对,一个用做账户的公私钥对,另一个用做恢复该账户的公私钥对。