Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1069625
  • 博文数量: 252
  • 博客积分: 4561
  • 博客等级: 上校
  • 技术积分: 2833
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-15 08:23
文章分类

全部博文(252)

文章存档

2015年(2)

2014年(1)

2013年(1)

2012年(16)

2011年(42)

2010年(67)

2009年(87)

2008年(36)

分类: LINUX

2011-12-27 13:36:40

NGINX客户端SSL认证(转)
2009-02-25 14:47
转自:
搞定NGINX客户端SSL认证[APACHE客户端SSL认证方法也类似]
2008-11-01 18:34:46
我的环境:ubuntu 8.10, nginx 0.5.33 ,OpenSSL 0.9.8g
以下一步步跟着操作,绝对可以实现客户端SSL认证[实际上具体什么WEB SERVER倒是无所谓]
1.生成根CA:
    openssl genrsa -des3 -out RootCA.key 2048
    过程中会提示你输入你的密码,随便输
    openssl req -new -key RootCA.key -out RootCA.req
    首先需要输入刚才你设定的密码,注意,这里的OU[Organizational Unit]和CN[Common Name]要为空!
    openssl x509 -req -days 3650 -sha1 -extensions v3_ca -signkey RootCA.key -in RootCA.req -out RootCA.crt
    这里需要你再次输入刚才设定的密码!
    至此根CA生成完毕!
2.生成服务器端证书
    openssl genrsa -out ServerCA.key 2048
    openssl req -new -key ServerCA.key -out ServerCA.req
    注意,此处信息应与根CA一致,但CN要输入你的域名!!OU可空!
    openssl x509 -req -days 730 -sha1 -extensions v3_req -CA RootCA.crt -CAkey RootCA.key -CAserial RootCA.srl -CAcreateserial -in ServerCA.req -out ServerCA.crt
    这里需要再次输入你设定的密码
    至此服务器端证书制作完毕
3.生成客户端证书
    openssl genrsa -des3 -out ClientCA.key 2048
    这里需要你设定一个客户端的密码,建议与根CA的不一样
    openssl req -new -key ClientCA.key -out ClientCA.req
    需要输入刚才设定的客户端密码,这里的CN要与服务器端的不一样,可以用你的名字来做CN
    openssl x509 -req -days 730 -sha1 -extensions v3_req -CA RootCA.crt -CAkey RootCA.key -CAserial RootCA.srl -CAcreateserial -in ClientCA.req -out ClientCA.crt
    需要输入根CA的密码
    openssl pkcs12 -export -in ClientCA.crt -inkey ClientCA.key -out ClientCA.pfx
    需要输入客户端证书的密码,并且设定导出时输入的密码
    至此客户端证书生成完毕
    现在我们已经有了三张证书,就差服务器配置和客户端导入了,下面以NGINX为例,提供一个简单的配置文件
4.NGINX配置文件:
    关键部分:
        listen   443;

        server_name mytools;
        ssl on;
        ssl_certificate /etc/nginx/certs/ServerCA.crt;
        ssl_certificate_key /etc/nginx/certs/ServerCA.key;
        ssl_client_certificate /etc/nginx/certs/RootCA.crt;
        ssl_verify_client on;
        ssl_verify_depth 1;

        ssl_session_timeout 5m;

        ssl_protocols SSLv2 SSLv3 TLSv1;
        ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
        ssl_prefer_server_ciphers   on;
5.重启NGINX:
     /etc/init.d/nginx restart
6.客户端浏览器导入:
    我这里是OPERA,选择配置->高级->安全->证书->证书管理,导入个人证书,选择ClientCA.pfx文件,输入你 设定的导入密码,以及你的客户端crt文件,然后输入服务器的地址,就可以走客户端SSL认证了
阅读(1206) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~