跳到主要内容

如何在 GoDaddy 获取证书?

GoDaddy 购买并配置 SSL 证书常在英文环境中进行。

前置知识:

  • .key: PKCS8 格式的私钥文件 (Base64 编码)
  • .csr: PKCS10 格式证书中的部分信息(包含了公钥、组织名等,公钥由私钥文件 xxx.key 生成)
  • .crt: 证书文件,它添加了 CA 签名信息,基于 .csr 文件。Godaddy 在用户上传完 .csr 文件后,会生成 .crt 文件。
  • .der: 二进制格式的证书文件,它可以从 .pem 格式转化过来。命令 openssl x509 -inform der -in xxx.der -out xxx.pem
  • .pem: base64 格式的文件, 它的具体内容由它内部的头部信息指定,可以是私钥,公钥,证书或者其他。
  • .p12, .pkcs12, .pfx: PKCS12 格式, 它里面合并包含了私钥,公钥,证书等信息。

1. 在本机生成私钥 & CSR & 证书:

# generate private key
openssl genpkey -algorithm RSA \
-pkeyopt rsa_keygen_bits:4096 \
-pkeyopt rsa_keygen_pubexp:65537 | \
openssl pkcs8 -topk8 -nocrypt -outform pem > voce.chat.key

# generate CSR file
openssl req -subj "/C=US/ST=Arizona/L=Scottsdale/O=Privoce,Inc./CN=*.voce.chat/emailAddress=api.privoce@gmail.com" \
-new -days 3650 -key voce.chat.key -out voce.chat.csr

# generate self-sign file
openssl x509 -signkey voce.chat.key -in voce.chat.csr -req -days 365 -out voce.chat.crt

# view certificate
openssl req -text -noout -verify -in voce.chat.csr

我们将得到下面的文件,非常重要,请备份好它们:

-rw-r--r--  1 user  staff   1.9K May  5 00:34 voce.chat.crt
-rw-r--r-- 1 user staff 1.7K May 5 00:34 voce.chat.csr
-rw-r--r-- 1 user staff 3.2K May 5 00:29 voce.chat.key

采用 .key .csr 我们已经可以配置 nginx 类似的系统,只有浏览器会提示风险。

2. 要申请 GoDaddy 帐户并购买域名证书,您需要完成付款流程并按照提示进行操作。

Godaddy website: https://www.godaddy.com/

3. 设置域名 & CSR:

Godaddy-Manae-Cert Godaddy-Update-CSR

4. 下载证书

Godaddy-Download-Cert
您将获得一个压缩文件 xxx.zip,解压后,将获得以下文件:

-rw-rw-r--@ 1 user  staff   2.4K May  4 07:47 1aeb156731cb52d3.crt
-rw-rw-r--@ 1 user staff 2.4K May 4 07:47 1aeb156731cb52d3.pem
-rw-rw-r--@ 1 user staff 4.7K May 4 07:47 gd_bundle-g2-g1.crt

5.合并证书并,覆盖掉原来的自签名证书(如果有)。

cat 1aeb156731cb52d3.crt gd_bundle-g2-g1.crt > voce.chat.crt

6. vocechat-server 配置

拷贝证证书文件:

cp voce.chat.crt cert/ca.crt
cp voce.chat.key cert/ca.key

修改 config/config.toml


[network]
bind = "0.0.0.0:3000"
domain = "domain.com"

# [network.tls]
# type = "self_signed"

[network.tls]
type = "certificate"
# cert = "/path/voce.chat.crt"
# key = "...."
path = "./cert"

重启 vocechat-server:

/etc/init.d/vocechat-server restart