配置https实现请求安全

简单的说,https可以称之为http的安全版本,使用https可以保护我们的敏感数据,特别是在用户登陆、交易等场景下,尤其需要防止数据被截取、篡改。

下面以nginx为例,介绍一下nginx服务器配置https网站的方法。关于nginx的安装,这里就不做介绍了,要配置https,编译安装时需要ssl模块,已经安装了nginx可以通过命令查看是否包含了ssl模块(是否包含了参数:--with-http_ssl_module):

root@dayuanzi-ThinkCentre-XXXX:/home/dayuanzi# /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.9.2
built by gcc 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04) 
built with OpenSSL 1.0.2d 9 Jul 2015
TLS SNI support enabled
configure arguments: --with-http_ssl_module --with-pcre=../pcre-8.36 --with-zlib=../zlib-1.2.8 --with-openssl=../openssl-1.0.2d

没有的话,重新编译安装即可。

下面,是生成秘钥,证书等文件,需要用到openssl

// 生成一个RSA密钥
# openssl genrsa -des3 -out rsatest.key 1024
// 拷贝一个不需要输入密码的密钥文件
# openssl rsa -in rsatest.key -out rsatestnopw.key
// 生成一个证书请求
# openssl req -new -key rsatest.key -out rsatest.csr
// 签发证书
# openssl x509 -req -days 365 -in rsatest.csr -signkey rsatest.key -out rsatest.crt

作为测试,这里生成的证书我没有向证书认证机构认证,浏览器访问时会提醒是不受信任的证书

下一步,是把证书配置到nginx,如下所示:

server
        {
                listen       443;
                server_name  localhost;
                ssl on;
                ssl_certificate /home/dayuanzi/temp/rsamiyao.csr;
                # 这里配置了没有设置密码的秘钥,否则每次启动nginx都需要输入密码,比较麻烦
                ssl_certificate_key /home/dayuanzi/temp/rsamiyaonopw.key;

                index index.jsp index.html;
                root /home/default;
                location ~ .* {
                        proxy_pass http://site;
                        proxy_set_header X-Real-IP $remote_addr;
                }
        }
然后重启nginx,就可以通过https访问服务器了。
我们可以通过抓包工具查看访问时的数据,比如使用wireshark,http访问时可以查看到所有请求数据,https访问时看到的则是乱码



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值