Looyao's Blog

记录一些点滴

域名SSL证书申请(HTTPS)

| Comments

记录一下域名SSL证书的申请过程.

1、需要选一个SSL证书服务商, 比如GlobalSign, 亚洲诚信等.

2、技术准备, 首先要生成一个CSR(Certificate Signing Request)文件, 用来证书请求. 这里需要使用openssl, 使用linux系统为例: 先生成一个私钥, 一般需要2048位, 这一步需要输入密码.

openssl genrsa -des3 -out domain_ssl.key 2048

接着, 生成CSR, 这一步需要输入一些信息

openssl req -new -key domain_ssl.key -out domain_ssl.csr

信息如下

Country Name (2 letter code): (国家名, 中国填CN)
State or Province Name (full name): (省份, 如:广东)
Locality Name (eg, city):(城市名, 如:深圳)
Organizational Unit Name (eg, section):(这个填部门就可以, 比如IT)
Common Name (eg, your websites domain name):(域名)
Email Address:(选填)
A challenge password:(选填)
An optional company name:(选填)

生成好CSR文件, 就可以去申请证书了. 一般一周以内应该能申请完成, 具体证书信息应该会以邮件形式接收.上边的私钥文件domain_ssl.key要保存着, 下面说下去掉私钥的密码, 重命名原始秘钥文件

mv domain_ssl.key domain_ssl.key.ori
openssl rsa -in domain_ssl.key.ori -out domain_ssl.key

这样密码就去掉了, 不然每次重启web server的时候需要手工输入私钥密码.

3、证书请求完成之后集成到web server.一般情况, 证书请求成功后提供商那里会有相关集成文档, 下边以nginx为例, 将证书提供商分配的SSL证书和域名型SSL中级证书合并到一个文件(CRT), 如domain_ssl.crt, SSL证书在前, 中级证书在后. 将自己生成的私钥文件domain_ssl.key和刚合并好的domain_ssl.crt拷贝到一个文件夹下.

更改nginx配置, 如

1
2
3
4
5
6
7
8
9
10
11
server {
        listen       80;
        listen       443 ssl;
        server_name  yourdomain;
        ssl_certificate     /data/ssl_key/domain_ssl.crt;
        ssl_certificate_key /data/ssl_key/domain_ssl.key;
        ssl_protocols  SSLv2 SSLv3 TLSv1;
        ssl_ciphers         HIGH:!aNULL:!MD5;

        ...
}

保存后测试, nginx -t, 成功后重启nginx. 测试访问: https://yourdomain, 完成.

参考资料:

http://articles.slicehost.com/2007/12/19/ubuntu-gutsy-self-signed-ssl-certificates-and-nginx

Comments