今天操作申请了SSL证书,申请之前一头雾水,后来操作下来发现也并不麻烦,记录下来以防忘记。
步骤一:生成CSR和KEY文件
1.生成私钥文件
在终端执行如下命令生成私钥文件(如果没有openssl,请自行安装):
openssl genrsa 2048 > private-key.pem
请将红色字体改成自己的文件名。
2.创建证书签名请求(CSR文件)
在终端执行如下命令生成CSR文件:
openssl req -new -key private-key.pem -out csr.pem
private-key.pem为你上一步生成的私钥的文件名,csr.pem为要生成的CSR。
执行完之后的效果如图:
这时我们需要输入证书相关的信息:
名称 | 描述 | 示例 |
---|---|---|
国家名称 | 代表国家的两个字母 ISO 缩写。 | US = 美国 |
州或省 | 组织所在州或省的名称。此名称不可使用缩写。 | 华盛顿州 |
所在地名称 | 组织所在城市的名称。 | Seattle |
组织名称 | 组织的法定全称。请勿缩写组织名称。 | 示例 Corp |
组织部门 | 可选,用于提供额外的组织信息。 | 市场营销 |
公用名 | 别名记录的完全限定域名。如果两者不能精确匹配,那么您会收到一条证书名称检测警告。 | www.yourdomain.com |
电子邮件地址 | 服务器管理员的电子邮件地址 | someone@yourdomain.com |
这里除了公用名(Common Name)外,其他信息均可留空,公用名就是你要申请的服务器名(例如:www.yourdomain.com)
不过建议大家尽量不要把参数留空,多填写信息,对证书安全有一定好处。另外还有A challenge password和An optional company name,建议设置并备份,虽然不知道用来做什么的。
信息填写完成之后就生成了CSR文件。
步骤二:申请CRT证书
将刚才获取的CSR文件上传或粘贴到SSL证书申请网站(我这里是www.digicert.com,以下以此网站为例),并填写必要信息,选择申请时长(我这里选的商用最大年限:2年)。最后填写银行信用卡信息,付款,提交申请即可。
如果你是新申请证书,还要执行步骤三。
步骤三:域名所有权验证(DCV)
必须验证域名所有权,即证明此域名是为你所有,才能申请到证书。域名验证一般有三种方式,分别是DNS TXT验证、邮箱验证和File验证(或者叫HTTP Practical Demonstration)。这里推荐使用File验证,简单快速。File验证的步骤很简单,选择File验证之后,证书颁发网站(我这里就是www.digicert.com)的验证页面会提供一个fileauth.txt验证文件供你下载,并告知你将此文件放在你的服务器的相应路径下即可。验证完成之后,就等着审核吧,一般很快就会生成证书并可下载。以下是验证通过后的样子:
步骤四:安装证书
将申请下来的证书下载为自己所需的格式(我这里是CRT文件)。如果你下载的也是CRT文件,会发现下载下来的压缩包里包含两个.crt文件。其中一个的名字结尾是带CertCA的,一个是不带的。然后将这俩文件合并为一个文件,即将两个文件的内容粘贴到一个新的.crt文件里即可(带CertCA的文件内容在后),我们不妨将合并后的文件命名为server.crt。
最后,只需要把 server.crt和最开始生成的私钥文件private-key.pem安装到服务器上即可(具体安装步骤就不再赘述了)。
到这里我们就完成了完整申请SSL证书的全部过程。
最后总结说明一下每个文件:
CSR:证书签名请求文件,用来申请证书(提供给证书供应商)
KEY:私钥文件,用来配置ssl(放到服务器)
CRT:证书文件,是证书供应商颁发的证书(放到服务器)