一:服务器端
1、首先需要配置站点的SSl证书
打开Nginx安装目录下conf目录中的nginx.conf文件 找到
# HTTPS server
#
#server {
# listen 443;
# server_name localhost;
# ssl on;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# 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;
# location / {
# root html;
# index index.html index.htm;
# }
#}
将其修改为 :
server {
listen 443;
server_name localhost;
ssl on;
ssl_certificate sslkey/public.cer; (证书公钥)
ssl_certificate_key sslkey/private.key; (证书私钥)
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers AES128-SHA:AES256-SHA:DES-CBC3-SHA:AES256-SHA256:AES128-SHA256;
# HTTPS server
#
#server {
# listen 443;
# server_name localhost;
# ssl on;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# 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;
# location / {
# root html;
# index index.html index.htm;
# }
#}
将其修改为 :
server {
listen 443;
server_name localhost;
ssl on;
ssl_certificate sslkey/public.cer; (证书公钥)
ssl_certificate_key sslkey/private.key; (证书私钥)
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers AES128-SHA:AES256-SHA:DES-CBC3-SHA:AES256-SHA256:AES128-SHA256;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
}
保存退出,并重启Nginx。
通过https方式访问您的站点,测试站点证书的安装配置。
3、配置强身份认证
location / {
root html;
index index.html index.htm;
}
}
保存退出,并重启Nginx。
通过https方式访问您的站点,测试站点证书的安装配置。
3、配置强身份认证
1、 修改nginx.conf文件
如果要求客户采用客户证书认证方式,可以在原来的配置下增加如下参数:
server {
......
......
......
ssl_verify_client on 要求SSL客户证书认证。
ssl_verify_depth 4 SSL客户证书认证链长度。
}
4、重启站点使用您的客户端证书进行登陆测试
具体可以参考如下链接:
二:客户端配置
将沃通或者其他机构下发的.pfx转成.p12 将之前服务器端证书,转成.cer给到客户端即可
client.p12 (为沃通下发的客户端证书,利用火狐浏览器转成的) 为IOS客户端证书,server.cer(nginx上vfcgy.com.crt 转成.cer)为服务端证书
需要准备的自签名证书
1.服务器私钥 2.由CA签发的含有服务器公钥的数字证书 3.CA的数字证书。在双向认证的实践中,通常服务器可以自己作为证书机构,并且由服务器CA签发服务器证书和客户端证书。
1.客户端私钥 2. 由CA签发的含有客户端公钥的数字证书。为了避免中间人攻击,客户端还需要内置服务器证书,用来验证所连接的服务器是否是指定的服务器。
- 服务端 .cer
- 客户端 .p12
详见https://github.com/cuiwe000/HttpsDemo