springboot配置https安全连接的方法

网友投稿 848 2023-02-25

springboot配置https安全连接的方法

springboot配置https安全连接的方法

1.项目上线,以前没有配置过https的安全连接。。。刚刚申请了一个https免费证书。(我使用的是unbantu16系统)

Let's Encrypt 是属于介绍性质的,而真正用到的工具是 Certbot,去 https://certbot.eff.org/ -合适自己系统的Certbot。

2. -Certbot

sudo apt-get install software-properties-common

sudo add-apt-repository ppa:certbEOgfYot/certbot

sudo apt-get update

sudo apt-get install certbot

3.配置 nginx

location ^~ /.well-known/ {

alias /var/www/html;

default_type "text/plain";

allow all;

}

4.https://certbot.eff.org/lets-encrypt/ubuntuxenial-nginx(原网连接)。

5.cd /etc/nginx/sites-available/default进行配置:(如下)

server {

# 访问http 跳转到https

listen 80;

server_name example.com;

rewrite ^(.*) https://$server_name$1 permanent;

}

server {

listen 443 ssl;

server_name example.com;

index index.php index.html index.htm;

#####SSL#####

location ^~ /.well-known/ {

alias /var/www/html;

default_type "text/plain";

allow all;

}

ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;

ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

ssl_session_timeout 1d;

ssl_session_cache shared:SSL:50m;

ssl_session_tickets on;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

ssl_prefer_server_ciphers on;

# 推荐使用的ssl_ciphers值: https://wiki.mozilla.org/Security/Server_Side_TLS;

ssl_ciphers

'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128:AES256:AES:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK';

#####SSL#####

}

6.免费的会有3个月的使用期。需要3个月更新一次。

# 更新证书

certbot renew --dry-run

# 如果不需要返回的信息,可以用静默方式:

certbot renew --quiet

7.下面需要生成java要集成的jks证书。

1).openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -out fullchain_and_key.p12 -name tomcat

执行完第一步需要输入俩个密码记住项目里需要用到。

2).keytool -importkeystore -deststorepass '密码' -destkeypass '密码' -destkeystore MyDSKeyStore.jks -srckeystore fullchain_and_key.p12 -srcstoretype PKCS12 -srcstorepass '密码' -alias tomcat

8.最终生成项目中需要用到的jks证书。。。

9.springboot项目集成:

1).项目结构

application.yml中 放的是下面的配置:

server:

port: 9233

ssl:

key-store: classpath:MyDSKeyStore.jks

key-store-password: 密码

key-password: 密码

上述的所有密码是可以设置成一样的。当然也可以不一样(不一样的话得记EOgfY住那个密码是那个)。我这里为了省事,设置成一样的了。。

2)、在启动类里面需要加入这俩个方法。

@Bean

public EmbeddedServletContainerFactory servletContainer(){

TomcatEmbeddedServletContainerFactory tomcat=new TomcatEmbeddedServletContainerFactory(){

@Override

protected void postProcessContext(Context context) {

SecurityConstraint securityConstraint=new SecurityConstraint();

securityConstraint.setUserConstraint("CONFIDENTIAL");//confidential

SecurityCollection collection=new SecurityCollection();

collection.addPattern("/*");

securityConstraint.addCollection(collection);

context.addConstraint(securityConstraint);

}

};

tomcat.addAdditionalTomcatConnectors(httpConnector());

return tomcat;

}

@Bean

public Connector httpConnectoEOgfYr(){

Connector connector=new Connector("org.apache.coyote.http11.Http11NioProtocol");

connector.setScheme("http");

connector.setPort(8080);

connector.setSecure(false);

connector.setRedirectPort(9233);

return connector;

}

10.成功

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:怎样用电脑打开小程序(如何在电脑端打开小程序)
下一篇:vue能用来开发小程序吗(vuejs开发小程序)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~