HTTPS 是一种加密的HTTP协议,现在主要应用于银行,金融,以及支付平台等领域。
除了向国际上一些知名的证书办法机构,如VeriSign。GlobalSign,GeoTrust申请数字证书之外(国内颁发证书的CA机构主要是CNNIC),我们自己也可以利用Linux系统相关命令自己生成数字证书,区别在于这一些证书,是不受浏览器支持的,需要自己动手选择信任才能继续访问:
首先创建一个私钥文件:
openssl genrsa -des3 -out server.key 1024
openssl req -new -key server.key -out server.csr
openssl rsa -in server.key -out server_nopass.key
结合密钥和证书生成请求,创建一个自签署的CA证书
openssl req -new -x509 -days 3650 -key server_nopass.key -out server.crt
至此,通过自身生成的server_nopass.key 和 server.crt 即可以结合nginx的相关配置,搭建一个自认证的HTTPS系统
这里是一个Nginx的配置示例:
server { listen 443; server_name localhost; ssl on; ssl_certificate server.crt; ssl_certificate_key server_nopass.key; ssl_session_timeout 5m; ssl_protocols SSLv2 SSLv3 TLSv1; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; location / { root html; index index.html index.htm; } }