服务器 配置SSL for nginx && springboot(jetty) ...

自己的小项目到了配置ssl的阶段,去网上找到了Let’s Encrypt ssl证书提供商 免费开放 用的人比较多 按照官方文档的说明 去这个网站按照提示操作 我是在centos7操作的
https://certbot.eff.org/#centosrhel7-nginx

大致过程如下

sudo yum install certbot
certbot certonly --standalone -d example.com -d www.example.com

example换成你的域名

然后证书文件会生成在
/etc/letsencrypt/live/www.xxywithpq.cn/目录下,pem结尾的就是证书文件

这里写图片描述

因为我有一个前后端分离的项目,所以 分为 nginx的配置 和 springboot的配置

1.nginx的配置:

server{
    listen 80;
    server_name www.xxywithpq.cn;
    add_header Strict-Transport-Security max-age=15768000;
    return 301 https://$server_name$request_uri;
}

server {

    listen              443 ssl http2 fastopen=3 reuseport;
    server_name         www.xxywithpq.cn;
    ssl_certificate     /etc/letsencrypt/live/www.xxywithpq.cn/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/www.xxywithpq.cn/privkey.pem;
    ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers         HIGH:!aNULL:!MD5;

.........
下面配置省略
.........
}

这里配置了两个server,第一个server是为了有人访问http可以自动跳转https,
ssl_certificate 和 ssl_certificate_key 分别指定了我们刚刚生成的文件,然后重启nginx就可以了!

2.spring boot 的配置:

springboot 我用的是jetty的中间件,然后pem文件它好像不支持,后来我查阅了一下资料,对pem文件进行了转换, 步骤如下:

在linux下分别用下面两句话生成 key.der 和 cert.der

openssl pkcs8 -topk8 -nocrypt -in privkey.pem -inform PEM -out key.der -outform DER
openssl x509 -in fullchain.pem -inform PEM -out cert.der -outform DER

然后用预先编译好的ImportKey.class 文件执行下面的话:

ImportKey.class文件下载地址:
http://download.csdn.net/detail/lovejj1994/9692456

java ImportKey key.der cert.der

结果会出现以下信息,记住Alias 和 Password,后面有用

Using keystore-file : /root/keystore.ImportKey
One certificate, no chain.
Key and certificate stored.
Alias:importkey  Password:importkey

在账户的根目录下 会发现生成了 keystore.ImportKey 文件

改一下名字

mv keystore.ImportKey  opennms.keystore

在springboot项目中,编辑application.properties

#SSL
server.port=80
server.ssl.enabled=true
server.ssl.key-store=classpath:opennms.keystore
server.ssl.key-store-password=importkey
server.ssl.key-alias=importkey

把刚刚的 文件引入,还有password和alias,启动项目,ssl配置成功!

转载于:https://www.cnblogs.com/lovejj1994/p/7182166.html

你可能感兴趣的:(服务器 配置SSL for nginx && springboot(jetty) ...)