当前位置:首页 > Java

如何配置ssl java

2026-03-23 07:01:20Java

生成Java密钥库(Keystore)

使用keytool工具生成包含SSL证书的Java密钥库(JKS文件)。以下命令生成一个自签名证书:

keytool -genkeypair -alias mydomain -keyalg RSA -keysize 2048 -keystore keystore.jks -validity 365
  • -alias:证书别名。
  • -keystore:密钥库文件名(默认路径为用户目录)。
  • -validity:证书有效期(天)。

配置Tomcat服务器

conf/server.xml中启用HTTPS连接器(Tomcat 8.5+示例):

<Connector 
    port="8443" 
    protocol="org.apache.coyote.http11.Http11NioProtocol"
    maxThreads="150" 
    SSLEnabled="true">
    <SSLHostConfig>
        <Certificate 
            certificateKeystoreFile="conf/keystore.jks"
            certificateKeystorePassword="changeit" 
            type="RSA" />
    </SSLHostConfig>
</Connector>
  • certificateKeystoreFile:密钥库路径(相对或绝对路径)。
  • certificateKeystorePassword:密钥库密码(与生成时一致)。

配置Spring Boot

application.propertiesapplication.yml中启用HTTPS:

如何配置ssl   java

server.port=8443
server.ssl.key-store-type=JKS
server.ssl.key-store=classpath:keystore.jks
server.ssl.key-store-password=changeit
server.ssl.key-alias=mydomain

keystore.jks文件放在src/main/resources目录下。

强制HTTP重定向到HTTPS

在Spring Boot中通过配置WebSecurityConfig实现:

如何配置ssl   java

@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.requiresChannel()
            .requestMatchers(r -> r.getHeader("X-Forwarded-Proto") != null)
            .requiresSecure();
    }
}

验证SSL配置

访问https://localhost:8443,浏览器可能会提示自签名证书风险,需手动信任。使用openssl验证证书信息:

openssl s_client -connect localhost:8443 -showcerts

使用Let's Encrypt证书(可选)

替换自签名证书:

  1. 使用Certbot获取证书(生成fullchain.pemprivkey.pem)。
  2. 将PEM文件转换为PKCS12格式:
    openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -out keystore.p12 -name mydomain
  3. 将PKCS12导入JKS:
    keytool -importkeystore -srckeystore keystore.p12 -srcstoretype PKCS12 -destkeystore keystore.jks

注意事项

  • 生产环境建议使用CA签发的证书(如Let's Encrypt)。
  • 密钥库密码需妥善保管,避免泄露。
  • 定期更新证书(尤其是Let's Encrypt的90天有效期)。

标签: ssljava
分享给朋友:

相关文章

如何配置java

如何配置java

安装Java开发工具包(JDK) 访问Oracle官方网站或OpenJDK项目页面下载适合操作系统的JDK安装包。选择与系统架构匹配的版本(如Windows x64、macOS ARM等)。运行安装程…

java如何学习

java如何学习

学习Java的有效方法 理解基础概念 Java是一门面向对象的编程语言,掌握基础概念如变量、数据类型、运算符、控制语句(if-else、循环)是必要的。面向对象的核心概念包括类、对象、继承、多态和封装…

java如何输出数组

java如何输出数组

输出数组的方法 在Java中,输出数组内容有多种方式,具体取决于数组类型和输出格式需求。以下是几种常见的方法: 使用Arrays.toString()方法 适用于一维数组,直接调用Arrays.to…

如何安装java环境

如何安装java环境

下载JDK安装包 访问Oracle官方网站或OpenJDK项目页面,选择适合操作系统的JDK版本(如Windows、macOS或Linux)。确保下载与系统架构匹配的版本(32位或64位)。 运行安…

java实现vue接口

java实现vue接口

Java 实现 Vue 接口的方法 在 Java 中实现 Vue 前端调用的接口,通常需要使用 Spring Boot 框架构建 RESTful API。以下是具体的实现步骤和代码示例。 创建 Sp…

java js实现转盘抽奖

java js实现转盘抽奖

实现转盘抽奖的步骤 HTML结构 创建转盘抽奖的基本HTML结构,包括转盘区域和抽奖按钮。 <div id="wheel"> <canvas id="wheelCanvas"&…