基本步骤可以参考这篇文章, 但这篇文章有一个致命错误, 就是没有安装 INTERMEDIATE CA, 照样会被浏览器显示证书不可信.
1. 生成 server.key.orig
openssl genrsa -des3 -out server.key.orig 2048
2. 生成 server.csr 和 server.key
openssl req -new -key server.key.orig -out server.csr
openssl rsa -in server.key.orig -out server.key
中间, Common Name 就是域名, 如果你想同时保护 www.you.com 和主域 you.com, 则输入 www.you.com, 如果你输入的是 you.com 的话, 将无法保护 www.
注: server.key.orig 带有密码, 需要生成无密码的 server.key.
3. 拿着 server.csr 去证书厂商买证书
4. 买完后, 厂商会给你发两个证书 server.crt 和 server.intermediate.crt
5. 生成最终的 server.chained.crt
cat server.crt server.intermediate.crt > server.chained.crt
6. 配置 nginx
ssl_certificate server.chained.crt;
ssl_certificate_key server.key;