• 最全最规范的配置JDK生成的SSL证书


    1 找见JDK安装路径C:Program FilesJavajdk1.8.0_91in

    2在这个路径下面打开dos窗口

    3输入一下命令

    keytool -genkey -alias tomcat -keyalg RSA -keystore F:workspacegitchexianverifysrcmain esourcesSSL.keystore   改成自己的安装路径

    4 之后你按照dos提示一步一步往下走  密匙库口令随便输入 但是最好记住 

    5 之后就会生成SSL.keystore自己命名好的文件  放到你的项目中 我是springboot项目 直接放到resource中就行

    6 配置application.properties

    //https访问的端口

    server.port=8005   

    //证书名称
    server.ssl.key-store=classpath:SSL.keystore

    //密匙库口令
    server.ssl.key-store-password=k4098412

    //密匙库类型 JKS千万别写错
    server.ssl.keyStoreType=JKS

    //别名
    server.ssl.keyAlias=tomcat

    这个别名说下 有些人可能觉得这个别名从哪来

    在证书的目录下打开dos窗口 输出命令

     keytool -list -keystore SSL.keystore(你的证书名称)

    途中所指的就是别名

    7 之后再配置启动类

    SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    public static void main(String[] args) {
    SpringApplication.run(SpringBootStartApplication.class, args);
    }

    public void run(String[] args) throws Exception {
    System.err.println("Report time for you: " +sdf.format(new Date()) + " ---> darling~ yours springboot project has been successfully started!nice day,right?");
    }

    /**
    * http重定向到https
    * @return
    */
    @Bean
    public TomcatServletWebServerFactory servletContainer() {
    TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory() {
    @Override
    protected void postProcessContext(Context context) {
    SecurityConstraint constraint = new SecurityConstraint();
    constraint.setUserConstraint("CONFIDENTIAL");
    SecurityCollection collection = new SecurityCollection();
    collection.addPattern("/*");
    constraint.addCollection(collection);
    context.addConstraint(constraint);
    }
    };
    tomcat.addAdditionalTomcatConnectors(httpConnector());
    return tomcat;
    }

    @Bean
    public Connector httpConnector() {
    Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
    connector.setScheme("http");
    //Connector监听的http的端口号
    connector.setPort(8080);
    connector.setSecure(false);
    //监听到http的端口号后转向到的https的端口号
    connector.setRedirectPort(8005);
    return connector;
    }

    在启动类中加上最后这两个方法就可以了

    有些人可能会出现 以下报错:

    DerInputStream.getLength(): lengthTag=109, too big.

    解决办法

    <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
    <configuration>
    <encoding>UTF-8</encoding>
    过滤后缀为pem、pfx的证书文件
    <nonFilteredFileExtensions>
    <nonFilteredFileExtension>pem</nonFilteredFileExtension>
    <nonFilteredFileExtension>pfx</nonFilteredFileExtension>
    <nonFilteredFileExtension>p12</nonFilteredFileExtension>
    </nonFilteredFileExtensions>
    </configuration>
    </plugin>

    在pom文件中加入这个依赖就可以解决了

    就这几个部署  JDK自带的SSL证书就配置完了 

  • 相关阅读:
    Python+MySQL学习笔记(一)
    MySQL的基本操作
    2016.08.15
    使用vue为image的src动态赋值
    json对象与json字符串的转化
    js三元运算符
    uniapp vue中的短信验证码
    设计模式
    回调函数
    自定义注解
  • 原文地址:https://www.cnblogs.com/krlin/p/9791488.html
Copyright © 2020-2023  润新知