在 Nginx 中配置使用 GeoTrust 的 SSL 证书

最近因为 OAuth 2.0 项目的需要,需要配置 SSL。经过多加对比之后,选择了 GeoTrustTrue BusinessID Wildcard 证书。经过各种乱七八糟的认证手续(最扯淡的是,你的公司必须要在本地 114 电话上注册,靠!)之后,登录 GeoTrust 用户中心,选择你要配置的服务类型,比如 Nginx 的证书文件为 X.509 格式。

按照系统提示操作,会让你下载一个 ZIP 压缩包,解压缩后将得到两个文件:

  • IntermediateCA.crt
  • ssl_certificate.crt

其中 IntermediateCA.crtGeoTrust 的, ssl_certificate.crtGeoTrust 颁发给我们的域名使用的。

第一个要做的事情,就是按照 GeoTrust 官方的指引,把两个文件合并成一个,就是将 IntermediateCA 添加到我们自己证书后面

1
cat IntermediateCA.crt >> ssl_certificate.crt

修改 Nginx 的配置文件,增加 crt 和 key 的引用,其中 key 为申请 GeoTrust 证书之前,本地生成的私钥。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# HTTPS server
#
server {
listen 443;
server_name www.test.com;

root /var/www;
index index.html index.htm;

ssl on;
ssl_certificate /etc/ssl/certs/www.test.com.crt;
ssl_certificate_key /etc/ssl/private/www.test.com.key;

ssl_session_timeout 5m;

ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES";
ssl_prefer_server_ciphers on;

location / {
try_files $uri $uri/ =404;
}
}

最后访问网站,验证 SSL 的设置成功,比如:

https://www.test.com/