之前创建了CA认证机构和网站证书后(详细),试着完成了服务器对客户端的认证,即双向认证。 mkdir /etc/ssl/user #新建存放目录 cd /etc/ssl/user #转到存放目录 openssl genrsa -out user.key 2048 #生成key openssl req -new -key user.key -out user.csr #生成csr openssl ca -in user.csr -cert /etc/pki/CA/cacert.pem -keyfile /etc/pki/CA/private/cakey.pem -out user.crt -days 3655 #生成客户端证书crt,有效时限安需要修改 openssl pkcs12 -export -clcerts -in user.crt -inkey user.key -out user.p12 #生成浏览器能够识别的格式 #生成证书时会需要输入些信息,安实际填写即可。 #Nginx虚拟主机配置文件中添加蓝色部分 server { listen 443; server_name yourdomain.com; index index.html index.htm index.php default.html default.htm default.php; root /home/wwwroot/yourhostdir; ssl on; ssl_certificate /etc/ssl/ca.crt; ssl_certificate_key /etc/ssl/ca.key; ssl_client_certificate /etc/pki/CA/cacert.pem; #CA服务器证书 ssl_session_timeout 5m; #超时时间 ssl_verify_client on; #打开SSL客户端校验 ... } #以下是使用rewrite重写URL强制使用SSL代码 server { listen 80; server_name yourdomain.com; rewrite ^/(.*)$ https://yourdomain.com/$1 permanent; } #浏览器导入证书 把生成的user.p12拷出来,按不同浏览器导入即可 (责任编辑:IT) |