当前位置:首页 > 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的步骤 Windows系统卸载方法 打开控制面板,选择“程序和功能”或“卸载程序”。在列表中找到Java相关条目(如“Java 8 Update 251”),右键选择卸载并跟随向导完成操…

java如何创建项目

java如何创建项目

使用IDE创建Java项目(以IntelliJ IDEA为例) 打开IntelliJ IDEA,选择“New Project”。 在左侧菜单中选择“Java”,确保已配置JDK(若无需手动添加)。 勾…

如何安装java软件

如何安装java软件

下载Java安装包 访问Oracle官方网站或OpenJDK开源项目页面,选择适合操作系统的Java版本(如Windows、macOS或Linux)。对于个人使用,通常下载JDK(Java Devel…

java如何连接mysql数据库

java如何连接mysql数据库

连接 MySQL 数据库的步骤 添加 MySQL 驱动依赖 在项目中引入 MySQL 的 JDBC 驱动。如果使用 Maven,可以在 pom.xml 中添加以下依赖: <dependency…

java如何调试

java如何调试

调试Java程序的基本方法 使用IDE内置的调试工具(如IntelliJ IDEA或Eclipse)是最常见的方式。在代码行号旁点击设置断点,启动调试模式后,程序会在断点处暂停,允许查看变量值、调用栈…

java如何取绝对值

java如何取绝对值

取绝对值的方法 在Java中,取绝对值可以通过以下几种方式实现: 使用Math.abs()方法 Math.abs()是Java中最常用的取绝对值方法,适用于多种数据类型: int absolute…