通过使用 OpenSSL
了解如何使用 OpenSSL 生成私钥对和公钥对。
关于本任务
基于密钥的身份验证涉及生成一对加密密钥文件。 这些文件由私人密钥和公共密钥组成,可唯一识别用户身份。 与使用用户名和密码等基本方法相比,配对密钥验证可提供更高水平的验证安全性。 这种身份验证方法需要 2048 位 RSA 密钥对。
过程
- 在系统中安装 OpenSSL。
- 打开命令提示符,使用 OpenSSL 命令生成密钥对。
- 使用以下命令生成私钥和证书:
openssl req -x509 -newkey rsa:2048 -keyout -out -sha256 -days 730 -nodes -subj “/C={country}/ST={state}/L={city}/O={organization}/OU={organization unit}/CN={common_name}
示例 openssl req -x509 -newkey rsa:2048 -keyout privatekey.pem -out my_cert.pem -sha256 -days 730 -nodes -subj "/C=US/ST=Ohio/L=Columbus/O=Software Co/OU=Adapters/CN=soco"
例如,该命令以 PEM 格式生成 2048 位 RSA 私钥:
-----BEGIN PRIVATE KEY----- MIIE6T... -----END PRIVATE KEY----- - 获得私钥后,使用以下命令生成相应的公钥 openssl rsa -in {privatekey.pem} -pubout -out {publickey.pub}
示例 openssl rsa -in privatekey.pem -pubout -out pubkey.pub
例如,该命令从 PEM 格式的私钥中提取公钥:
-----BEGIN PUBLIC KEY----- MIIBIj... -----END PUBLIC KEY-----将私钥和公钥安全地存储在本地目录中,并记录文件的路径。 私人密钥以 PKCS#12 格式保存,并使用口令加密。
- 使用以下命令生成 pkc12 或 jks 格式的密钥存储文件: openssl pkcs12 -export -name {alias} -in {cert.pem} -inkey {privatekey.pem} -out {key.p12}
示例
openssl pkcs12 -export -name privatekey -in my_cert.pem -inkey privatekey.pem -out mykeystore.p12 - 接下来,配置 Snowflake 数据库以进行配对密钥验证。
- 在 Snowflake 中创建用户名和密码。
- 将公钥设置为 Snowflake 用户,以使用密钥对身份验证。 您必须拥有 ACCOUNTADMIN 角色才能对用户进行编辑。
- 在 Snowflake 中使用以下命令更改用户,使其使用配对密钥验证,并用公钥文件中的内容替换 rsa_public_key :
alter user <your_username> set rsa_public_key='<your_public_key>'
例如 ALTER USER JOHN SET RSA_PUBLIC_KEY='MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtD7m97G2h
9sNdkWeDBeyFhgUPLu2wbccYXT3vXwDudL2qFm7W6PxVaEj/k1bFeKcOHDI2jVVeHzU1awg1wxBJ3Jd2GJ9dYNmjGhovLSrthbKbGMavlwU +QIDAQAB
- 通过单击项目 > 选择项目 > 配置 > 常规 > 证书 > 新证书 > 密钥库添加先前生成的密钥库文件。
- 转到连接器选项卡,选择数据库连接器。
- 在基本配置部分添加详细信息。
- 在高级配置部分,选择密钥存储别名。 还可根据需要设置其他属性。
- 测试连接以验证数据库连接。 如果连接成功,则会出现成功信息。
- 使用 Snowflake 客户端连接 Snowflake ,测试密钥对身份验证。 您无需输入密码即可登录。