您的位置:首页 > 运维架构 > Nginx

FreeBSD下Nginx配置ssl-自建CA给网站签发SSL证书

2012-11-24 19:24 525 查看
1、受浏览器信任的Entrust SSL证书:它的根证书很久之前就被一些具有开源背景的浏览器支持(Firefox浏览器、谷歌Chrome浏览器、苹果Safari浏览器等)。

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.etsec.com.cn; 5. indexindex.html index.php; 6. root /data/www/www.etsec.com.cn; 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.etsec.com.cn的时候,会提示即将通过安全连接查看网页,点击确定会提示选择证书,选择刚安装的证书就可以正常浏览页面了 注意:不受信任的自签署SSL证书,只能在IE内核的浏览器使用,仅测试IE6,IE7,360浏览器等可正常使用,如果想让所有浏览器都支持的话,可以使用收费的 Entrust ssl证书

本文地址:http://www.etsec.com.cn/ssl/ssl-29.html 如非注明则为本站原创文章,欢迎转载。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: