zoukankan      html  css  js  c++  java
  • 本地测试Http升级到Https(证书信任)

    当我们使用谷歌浏览器调用麦克风,摄像头,定位等权限时,谷歌浏览器认为http连接是不安全的,要求使用https,于是拒绝了访问。

    但是我们是在本地测试,又没有域名和SSL证书,所以只能生成一个证书文件。

    一、生成证书

    1、打开CMD,输入以下命令:

    keytool -genkey -alias tomcat -keyalg RSA -keystore D:	omcat	omcat.keystore -validity 36500

    意思是:“D: omcat omcat.keystore”含义是将证书文件保存在F盘,证书文件名称是tomcat.keystore ;“-validity 36500”含义是证书有效期,36500表示100年,默认值是90天。

    2、接下来要输入密钥口令,由于是本地,我输入了:123456

    3、接下来要填写一些必要信息:

    • “您的名字与姓氏是什么?”

      这是必填项,并且必须是TOMCAT部署主机的域名或者IP[如:abcom.com 或者 192.168.0.1],就是你将来要在浏览器中输入的访问地址

    • “你的组织单位名称是什么?”、“您的组织名称是什么?”、“您所在城市或区域名称是什么?”、“您所在的州或者省份名称是什么?”、“该单位的两字母国家代码是什么?”

      可以按照需要填写也可以不填写直接回车,最后一步在系统询问“正确吗?”时,对照输入信息,如果符合要求则使用键盘输入字母“y”,否则输入“n”重新填写上面的信息。

    4、输入tomcat主密码

    输入<tomcat>的主密码,这项较为重要,会在tomcat配置文件中使用,建议输入与keystore的密码一致,设置其它密码也可以。

    生成完成,可在指定目录下找到证书文件。

    5、此时会报错

    Warning:
    JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore D:	omcat	omcat.keystore -destkeystore D:	omcat	omcat.keystore -deststoretype pkcs12" 迁移到行业标准格式 PKCS12。

    按它提示的命令输一遍就可以了。

    二、配置Tomcat

    1、修改server.xml文件

    (1)将生成的证书文件拷贝到Tomcat要引用的位置
    (2)打开apache-tomcat-8.0.20confserver.xml,修改如下:

    <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
                   maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
                   clientAuth="false" sslProtocol="TLS" keystoreFile="D:	omcat	omcat.keystore" keystorePass="123456" />

    这里有两点要注意一下:

    (1)这段代码默认是注释掉的,需要自己打开。

    (2)Https默认端口是443,由于我本地还装了其它应用,所以指定8443,这样就需要在访问的时候,要带端口。

    同时要修改跳转端口

    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

    注意事项同上。

    2、修改web.xml文件(有人也说可以不修改)

    在</welcome-file-list>后面加上这样一段

    <login-config>
        <!-- Authorization setting for SSL -->
        <auth-method>CLIENT-CERT</auth-method>
        <realm-name>Client Cert Users-only Area</realm-name>
    </login-config>
    <security-constraint>
        <!-- Authorization setting for SSL -->
        <web-resource-collection>
            <web-resource-name>SSL</web-resource-name>
            <url-pattern>/*</url-pattern>
        </web-resource-collection>
        <user-data-constraint>
            <transport-guarantee>CONFIDENTIAL</transport-guarantee>
        </user-data-constraint>
    </security-constraint>

    配置完成后,重启Tomcat后即可以使用SSL。

    3、说明

    使用Https访问,Chrome会提示安全警告,需要手动点击“高级”,“继续访问”即可,结果再https下使用ip地址访问是没有问题的可以获取浏览器麦克风权限。

    三、自动生效

    每次打开URL都需要手动去点击“高级”,“继续访问”,有人使用下面的办法可以解决这个问题(不过我配置完成后还是不行,我现在贴出来,大家可以试验一下)。

    1、点击URL前面的ICON

    2、将证书保存到本地

    3、双击安装证书

    4、选择受信任的根证书颁发机构

    5、确定,重启Chorme即可。

  • 相关阅读:
    Android WIFI 启动流程(TIP^^)
    MVVM模式原则
    CoreData入门
    转:iOS绘制一个UIView
    CGBitmapContextCreate函数参数详解
    RACCommand
    ReactiveCocoa内存管理
    IOS TableView滑动不灵敏问题
    IOS数组的排序和筛选
    IOS取消performSelector警告
  • 原文地址:https://www.cnblogs.com/hunttown/p/13780648.html
Copyright © 2011-2022 走看看