test 服务器ip:192.168.1.163

使用 OpenSSL 生成 SSL Key 和 CSR

由于只有浏览器或者系统信赖的 CA 才可以让所有的访问者通畅的访问你的加密网站,而不是出现证书错误的提示。所以我们跳过自签证书的步骤,直接开始签署第三方可信任的 SSL 证书吧。

OpenSSL 在 Linux、OS X 等常规的系统下默认都安装了,因为一些安全问题,一般现在的第三方 SSL 证书签发机构都要求起码 2048 位的 RSA 加密的私钥。

同时,普通的 SSL 证书认证分两种形式,一种是 DV(Domain Validated),还有一种是 OV (Organization Validated),前者只需要验证域名,后者需要验证你的组织或公司,在安全性方面,肯定是后者要好。

无论你用 DV 还是 OV 生成私钥,都需要填写一些基本信息,这里我们假设如下:

域名,也称为 Common Name,因为特殊的证书不一定是域名:example.com

组织或公司名字(Organization):Example, Inc.

部门(Department):可以不填写,这里我们写Web Security

城市(City):Beijing

省份(State / Province):Beijing

国家(Country):CN

加密强度:2048 位,如果你的机器性能强劲,也可以选择 4096 位

按照以上信息,使用 OpenSSL 生成 key 和 csr 的命令如下

openssl req -new -newkey rsa:2048 -sha256 -nodes -out example_com.csr -keyout example_com.key -subj "/C=CN/ST=Beijing/L=Beijing/O=Example Inc./OU=Web Security/CN=example.com"

PS:如果是泛域名证书,则应该填写*.example.com

你可以在系统的任何地方运行这个命令,会自动在当前目录生成example_com.csr 证书请求文件 和example_com.key这两个文件

这个 CSR 文件就是你需要提交给 SSL 认证机构的,当你的域名或组织通过验证后,认证机构就会颁发给你一个example_com.crt(还是cer??)

合成URL是:https://www.yunaq.com/tools/certificate_composing/

而example_com.key是需要用在 Nginx 配置里和example_com.crt配合使用的,需要好好保管,千万别泄露给任何第三方

 

[zhangshaohua1510@192 vhost]$ pwd

/usr/local/nginx/conf/vhost

[zhangshaohua1510@192 vhost]$ vi staging_home.zhen.com

server
{
        listen 80;
        listen 443 ssl;
        server_name staging_home.zhen.com;
        ssl_certificate      /usr/local/nginx/ca/server.cer;
        ssl_certificate_key  /usr/local/nginx/ca/server.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;
        access_log /usr/local/nginx/home.zhenpin.com.log;

        location /{

                       proxy_pass        http://staging_home;
                       proxy_set_header   Host             $host:$server_port;
                       proxy_set_header   X-Real-IP        $remote_addr;
                       proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
                        proxy_set_header REMOTE-HOST $remote_addr;
                        proxy_redirect off;
                        client_max_body_size 50m;
                        client_body_buffer_size 256k;
                        proxy_connect_timeout 120;
                        proxy_send_timeout 120;
                         proxy_read_timeout 60;
                        proxy_buffer_size 256k;
                        proxy_buffers 4 256k;
                        proxy_max_temp_file_size 128m;
                        proxy_next_upstream error timeout invalid_header http_500 http_503 http_404;
                }
               error_page   500 502 503 504  /50x.html;
       location = /50x.html {
         root   html;
      }

}

[zhangshaohua1510@192 ca]$ pwd

/usr/local/nginx/ca

[zhangshaohua1510@192 ca]$ ls

总用量 20

-rw-r--r--. 1 www www 4297 12月 14 10:04 server.cer

-rw-r--r--. 1 www www 1704 12月 14 10:04 server.key