fdsfsdfsdf3334
V2EX  ›  问与答

只有安装了证书,才可以访问网站,的解决方案 求助

  •  
  •   fdsfsdfsdf3334 · Jan 5, 2014 · 5681 views
    This topic created in 4541 days ago, the information mentioned may be changed or developed.
    由于公司的一个项目 位于阿里云服务器上

    但不希望外网的人访问

    希望各位给出安全的方法

    我自己想到的有好几个

    分别是用vpn,但这个方案目前来说 不太方便

    还有就是证书 ,但证书的方法我一直没有琢磨透

    求各位大神指点

    最好是没有经过授权的电脑,连页面都打不开,服务器连请求都不回复他

    用的openerp 打算把服务器组件换成nginx


    求大神给出方案
    10 replies    1970-01-01 08:00:00 +08:00
    Livid
        1
    Livid  
    MOD
    PRO
       Jan 5, 2014 via iPhone   ❤️ 1
    1. 只允许公司的 IP
    2. 用一个特殊的不存在的域名,客户端里写入到 hosts
    3. nginx 里加上 HTTP 验证
    fdsfsdfsdf3334
        2
    fdsfsdfsdf3334  
    OP
       Jan 5, 2014
    @Livid 你好 多谢指点 但是公司ip是动态的, 并且,我可能随时拿着电脑去别的环境上网,当然是用我自己的电脑


    3. nginx 里加上 HTTP 验证
    这个意思是加上密码验证吗? 我们的系统登陆的时候默认是有密码的


    我想让没有经过授权的电脑,连页面都打不开,服务器连请求都不回复他
    chairuosen
        3
    chairuosen  
       Jan 5, 2014   ❤️ 1
    没cookie的不返回?
    Jat001
        4
    Jat001  
       Jan 5, 2014   ❤️ 1
    我是这么做的:
    1. 自签一个根 CA,私钥离线存储。
    2. 用根 CA 再签两个中间 CA,分别用于客户端验证和服务器验证。严格设置 keyUsage、extendedKeyUsage 和 nsCertType。
    3. 用两个中间 CA 分别签发客户端证书和服务器证书。服务器证书要带有完整的证书链。
    4. 在本地信任根 CA。
    5. 在服务器信任用于客户端验证的中间 CA。

    这种方法我认为是比较安全的,因为根 CA 离线存储,中间 CA 也不存储在服务器上,只有服务器证书的密钥对和用于客户端验证的 CA 的公钥存储服务器上。用了这种验证方法后,我把一些程序自带的密码也去掉了。

    我只用过 nginx,客户端发出请求后需要先验证,成功后才访问具体文件,不成功直接返回 400。而要想什么都不返回,这应该是不可能的,因为 http 状态码是由 RFC 2616 规范定义的,要么别用 http/https 协议,要么自己开发个 web 服务器。
    qq286735628
        5
    qq286735628  
       Jan 5, 2014   ❤️ 1
    不是很重要的测试项目,一般不做解析,客户端配hosts就可以了,方便快捷无公害
    fdsfsdfsdf3334
        6
    fdsfsdfsdf3334  
    OP
       Jan 5, 2014
    @Jat001 多谢 多谢,我差不多就是要这个功能,不过听你说的 感觉好麻烦 好复杂
    msg7086
        7
    msg7086  
       Jan 6, 2014   ❤️ 1
    @fdsfsdfsdf3334 无非就几种
    1. 配置公钥,在HTTPS握手层解决
    2. 配置域名,域名和IP指向只有自己知道,写入host或者公司内网DNS
    fdsfsdfsdf3334
        8
    fdsfsdfsdf3334  
    OP
       Jan 6, 2014
    @msg7086 第二个 配置域名 你的意思是 域名 不使用 类似dnspod这样的服务来解析吗,只是只是本地修改host 是吗
    lazycat
        9
    lazycat  
       Jan 6, 2014 via Android
    Startssl的登陆是怎么做到的。。。这种方式应该符合楼主要求。。。
    msg7086
        10
    msg7086  
       Jan 6, 2014
    @fdsfsdfsdf3334 是啊。反正只有内部使用,而且还需要保密,那为啥还要到dnspod之类的地方去解析呢

    @lazycat 客户端证书。以前研究过这个问题,但是实现起来其实很麻烦……
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1164 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 52ms · UTC 17:58 · PVG 01:58 · LAX 10:58 · JFK 13:58
    ♥ Do have faith in what you're doing.