现在的位置: 首页FreeBSD>正文
FreeBSD下Nginx配置ssl-自建CA给网站签发SSL证书 [原创]
2011年04月29日 FreeBSD 评论关闭 ⁄ 被围观 11,785 次+

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根证书:

  1. mkdir /data/soft/nginx/conf/ssl.crt
  2. cd /data/soft/nginx/conf/ssl.crt
  3. cp /usr/local/openssl/misc/CA.sh .
  4. ========================================================================
  5. ee /etc/ssl/openssl.cnf
  6. 修改如下:
  7. default_days    = 3650
  8. default_crl_days= 3
  9. default_md      = md5
  10. default_bits            = 2048
  11. countryName_default             = CN
  12. stateOrProvinceName_default     = Beijing
  13. localityName_default            = Beijing
  14. 0.organizationName_default      = 92csz
  15. #organizationName               = Second Organization Name (eg, company)
  16. #organizationName_default       = World Wide Web Pty Ltd
  17. =========================================================================
  18. ee /data/soft/nginx/conf/ssl.crt/CA.sh
  19. 修改如下:
  20. CADAYS="-days 3650" # 10 years (CA证书的有效时间)
  21. =========================================================================
  22. 生成CA证书:
  23. ./CA.sh -newca
  24. chmod -R 700 /data/soft/nginx/conf/ssl.crt/demoCA/private/

签署服务器证书:

  1. ee /etc/ssl/openssl.cnf
  2. 修改如下:
  3. default_days    = 3650(服务器证书的有效时间)
  4. =========================================================================
  5. 生成服务器私钥:
  6. openssl genrsa -out server.key 2048
  7. 生成服务器证书请求:
  8. openssl req -new -key server.key -out server.csr
  9. 输入相关信息
  10. =========================================================================
  11. mv server.csr newreq.pem
  12. ./CA.sh -sign
  13. mv newcert.pem server.crt

颁发用户证书:

  1. ee /etc/ssl/openssl.cnf
  2. 修改如下:
  3. default_days    = 14(用户证书的有效时间)
  4. =========================================================================
  5. 生成客户私钥:
  6. openssl genrsa -out client.key 2048
  7. 生成客户证书请求:
  8. openssl req -new -key client.key -out client.csr
  9. 签署客户证书:
  10. openssl ca -in client.csr -out client.crt
  11. 把证书格式转换成pkcs12格式
  12. openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.pfx

nginx配置如下:

  1. server   
  2. {   
  3.     listen 443 ssl;   
  4.     server_name  www.92csz.com;   
  5.     index index.html index.php;   
  6.     root  /data/www/www.92csz.com;   
  7.     ssl_certificate ssl.crt/server.crt;   
  8.     ssl_certificate_key ssl.crt/server.key;   
  9.     ssl_client_certificate ssl.crt/demoCA/cacert.pem;   
  10.     ssl_verify_client on;   
  11.     ssl_session_cache shared:SSL:8m;   
  12.     ssl_session_timeout 5m;   
  13.     location ~ \.php$   
  14.     {   
  15.         fastcgi_pass 127.0.0.1:9000;   
  16.         fastcgi_index index.php;   
  17.         include fastcgi.conf;   
  18.     }   
  19. }  

这样就配置好了,把生成的客户端证书下载下来,在客户机安装。
当我们在浏览器访问https://www.92csz.com的时候,会提示即将通过安全连接查看网页,点击确定会提示选择证书,选择刚安装的证书就可以正常浏览页面了
注意:不受信任的自签署SSL证书,只能在IE内核的浏览器使用,仅测试IE6,IE7,360浏览器等可正常使用,如果想让所有浏览器都支持的话,可以使用收费的或是像上面介绍的StartSSL申请免费的(1年)的证书

ssl

本文地址:http://www.92csz.com/42/494.html
如非注明则为本站原创文章,欢迎转载。转载请注明转载自:moon's blog
 

抱歉!评论已关闭.