http 升级https

1. resource.properties 配置

是否打开Https
# openHttps=true
# 别名
keyAlias=baeldung
# 密文存储地址 /resources/baeldung.p12 下 classpath:baeldung.p12
keyStore=/home/ywjh/ywjhdb/baeldung.jks
# 加密方式
keyStoreType=PKCS12
# 加密密码
keyStorePassword=password111
ciphers=TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_128_GCM_SHA256,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_RSA_WITH_AES_256_CBC_SHA

sslEnabledProtocols=TLSv1,TLSv1.1,TLSv1.2

2. 生成密钥命令

2.1 生成密钥,客户端证书

keytool -genkeypair -alias baeldung -keyalg RSA -keysize 2048 -keystore baeldung.jks -validity 3650 -ext SAN=dns:134.1.1.2,ip:134.1.1.140
keytool -importkeystore -srckeystore baeldung.jks -destkeystore baeldung.jks -deststoretype pkcs12
生成客户端 crt安装
keytool -export -alias baeldung -keystore ./baeldung.jks -storetype PKCS12 -storepass mypassword -rfc -file ./baeldung.crt

2.2 让服务器承认密钥合法。eg:多台服务器,生成多台IP密钥,对服务都信任其密钥

keytool -keystore ./baeldung.jks -export -alias baeldung -file baeldung.cer
cd $JAVA_HOME/jre/lib//security/
keytool -import -alias baeldung -keystore cacerts -file ./baeldung.cer
密码:changeit
查看是否生效:
keytool -list -keystore cacerts -alias baeldung
删除:
keytool -delete -alias baeldung -keystore cacerts

2.3 crt使用:

1.安装证书
2.下一页
3. 将所有的证书都放入下列存储->浏览
3.1 选择 受修信任的根证书颁发机构 -> 确认
4. 下一页 -> 完成

3. application.yml 增加

server:
  ssl:
    enabled: ${openHttps}
    key-alias: ${keyAlias}
    key-store: ${keyStore}
    key-store-type: ${keyStoreType}
    key-store-password: ${keyStorePassword}
    enabled-protocols: ${sslEnabledProtocols}
    ciphers: ${ciphers}
  1. tocmat/conf/server.xml 修改配置 如下
     <Connector port="8888" protocol="org.apache.coyote.http11.Http11NioProtocol" 
     SSLEnabled="true" maxThreads="150" minProcessors="5" maxprocessors="100"  
     minSpareThreads="25" maxSpareThreads="75"  debug="0" acceptCount="10" 
     scheme="https" secure="true" clientAuth="false" 
     classname="org.apache.catalina.SSLServerSocketFactory"
     keystoreFile="/XXX/XXX/baeldung.jks" keystorePass="password111" sslProtocol="TLS"
     sslEnabledProtocols="TLSv1,TLSv1.1,TLSv1.2"
     ciphers="TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_128_GCM_SHA256,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_RSA_WITH_AES_256_CBC_SHA" 
     />
<think>好的,用户想了解如何将HTTP升级HTTPS,可能需要配置服务器或获取SSL证书的方法。首先,我需要整理一下整个流程,确保步骤清晰易懂。根据之前提供的引用内容,特别是引用[2]和引用[3],HTTPS升级主要涉及证书获取和服务器配置两个部分。 首先,SSL证书的获取。用户可能是个体开发者或小项目,所以免费证书比较合适。Let's Encrypt是常见选择,但有效期只有三个月,需要续签。国内的阿里云等提供商也有免费证书,有效期一年,适合中文用户。需要提醒用户选择证书时注意域名匹配问题,比如xx.com和www.xx.com可能需要不同的证书。 接下来是配置服务器。不同的Web服务器配置方法不同,用户可能使用Tomcat、Nginx或Apache。引用[1]提到Tomcat 9的配置方法,需要修改server.xml,这里要详细说明步骤,比如取消注释SSL连接器,指定证书路径和密码。同时,要提醒用户替换示例中的路径和密码,并检查端口是否正确。 然后是强制HTTPS的重定向设置。这可以通过配置Web服务器的重写规则实现,比如在Tomcat中配置web.xml,或者在Nginx中使用rewrite指令。另外,HSTS的配置也很重要,可以增强安全性,但需要谨慎设置max-age时间,避免因配置错误导致长时间无法访问。 最后,测试和后续维护。使用SSL检测工具检查配置是否正确,证书是否生效。同时,提醒用户注意证书的有效期,及时续签,避免服务中断。特别是使用Let's Encrypt的用户,需要设置自动续签,否则三个月后可能会出现问题。 用户可能需要分步骤的指导,尤其是具体的配置代码示例,比如Tomcat的server.xml修改部分,以及Nginx的配置示例。同时,常见问题如混合内容问题和HSTS配置注意事项也需要提及,帮助用户避免常见陷阱。 此外,用户的问题中提到了Tomcat 9的配置变化,旧教程可能过时,所以需要强调最新方法,避免用户走弯路。例如,在Tomcat中需要取消注释正确的Connector,并确保使用正确的协议和密钥库路径。 最后,生成相关问题需要考虑用户可能的后续疑问,比如证书续期方法、不同服务器的配置差异、HTTPS对SEO的影响等,这些都能帮助用户更全面地理解和实施HTTPS升级。</think>### HTTP升级HTTPS配置指南 #### 一、SSL证书获取(以阿里云为例) 1. **申请免费证书**:登录阿里云控制台 -> SSL证书 -> 购买免费证书(DV单域名) -> 填写域名信息 -> 等待审核(约30分钟)[^2] 2. **下载证书**:审核通过后下载对应服务器类型的证书文件(含`.pem`和`.key`) #### 二、Tomcat 9配置示例 1. **解压证书文件**到`/etc/tomcat/ssl/`目录 2. **修改`server.xml`** ```xml <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true"> <SSLHostConfig> <Certificate certificateKeystoreFile="/etc/tomcat/ssl/your_domain.pfx" certificateKeystorePassword="your_password" type="PKCS12" /> </SSLHostConfig> </Connector> ``` 3. **强制HTTP跳转HTTPS**:在`web.xml`添加 ```xml <security-constraint> <web-resource-collection> <url-pattern>/*</url-pattern> </web-resource-collection> <user-data-constraint> <transport-guarantee>CONFIDENTIAL</transport-guarantee> </user-data-constraint> </security-constraint> ``` #### 三、Nginx配置示例 ```nginx server { listen 443 ssl; server_name yourdomain.com; ssl_certificate /etc/nginx/ssl/yourdomain.pem; ssl_certificate_key /etc/nginx/ssl/yourdomain.key; # 强制重定向 if ($scheme = http) { return 301 https://$server_name$request_uri; } } ``` #### 四、验证与优化 1. 访问`https://www.ssllabs.com/ssltest/`检测安全评级[^2] 2. 启用HSTS增强安全(添加响应头) ```nginx add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; ``` #### 五、注意事项 1. 混合内容问题:确保页面所有资源(图片/JS/CSS)使用HTTPS链接 2. 证书续期:免费证书需定期更新(阿里云1年,Let's Encrypt 3个月) 3. 多服务器配置差异:Apache需配置`mod_ssl`模块[^3]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值