1、受浏览器信任的StartSSL免费SSL证书:它的根证书很久之前就被一些具有开源背景的浏览器支持(Firefox浏览器、谷歌Chrome浏览器、苹果Safari浏览器等)。注册成为StartSSL(http://www.startssl.com)用户,并通过邮件验证后,就可以申请免费的可信任的SSL证书了。步骤比较复杂,就不详细介绍了
2、自行颁发不受浏览器信任的SSL证书:
步骤如下:(环境:FreeBSD-7.4/nginx-0.8.55)
FreeBSD默认已安装openssl,nginx只需在./configure时添加 --with-http_ssl_module 就可以支持SSL了
签署CA根证书:
- mkdir /data/soft/nginx/conf/ssl.crt
- cd /data/soft/nginx/conf/ssl.crt
- cp /usr/local/openssl/misc/CA.sh .
- ========================================================================
- ee /etc/ssl/openssl.cnf
- 修改如下:
- default_days = 3650
- default_crl_days= 3
- default_md = md5
- default_bits = 2048
- countryName_default = CN
- stateOrProvinceName_default = Beijing
- localityName_default = Beijing
- 0.organizationName_default = 92csz
- #organizationName = Second Organization Name (eg, company)
- #organizationName_default = World Wide Web Pty Ltd
- =========================================================================
- ee /data/soft/nginx/conf/ssl.crt/CA.sh
- 修改如下:
- CADAYS="-days 3650" # 10 years (CA证书的有效时间)
- =========================================================================
- 生成CA证书:
- ./CA.sh -newca
- chmod -R 700 /data/soft/nginx/conf/ssl.crt/demoCA/private/
签署服务器证书:
- ee /etc/ssl/openssl.cnf
- 修改如下:
- default_days = 3650(服务器证书的有效时间)
- =========================================================================
- 生成服务器私钥:
- openssl genrsa -out server.key 2048
- 生成服务器证书请求:
- openssl req -new -key server.key -out server.csr
- 输入相关信息
- =========================================================================
- mv server.csr newreq.pem
- ./CA.sh -sign
- mv newcert.pem server.crt
颁发用户证书:
- ee /etc/ssl/openssl.cnf
- 修改如下:
- default_days = 14(用户证书的有效时间)
- =========================================================================
- 生成客户私钥:
- openssl genrsa -out client.key 2048
- 生成客户证书请求:
- openssl req -new -key client.key -out client.csr
- 签署客户证书:
- openssl ca -in client.csr -out client.crt
- 把证书格式转换成pkcs12格式
- openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.pfx
nginx配置如下:
- server
- {
- listen 443 ssl;
- server_name www.92csz.com;
- index index.html index.php;
- root /data/www/www.92csz.com;
- ssl_certificate ssl.crt/server.crt;
- ssl_certificate_key ssl.crt/server.key;
- ssl_client_certificate ssl.crt/demoCA/cacert.pem;
- ssl_verify_client on;
- ssl_session_cache shared:SSL:8m;
- ssl_session_timeout 5m;
- location ~ \.php$
- {
- fastcgi_pass 127.0.0.1:9000;
- fastcgi_index index.php;
- include fastcgi.conf;
- }
- }
这样就配置好了,把生成的客户端证书下载下来,在客户机安装。
当我们在浏览器访问https://www.92csz.com的时候,会提示即将通过安全连接查看网页,点击确定会提示选择证书,选择刚安装的证书就可以正常浏览页面了
注意:不受信任的自签署SSL证书,只能在IE内核的浏览器使用,仅测试IE6,IE7,360浏览器等可正常使用,如果想让所有浏览器都支持的话,可以使用收费的或是像上面介绍的StartSSL申请免费的(1年)的证书
如非注明则为本站原创文章,欢迎转载。转载请注明转载自:moon's blog