免费为域名生成证书

  • 目的
    后台需要https或者前端需要https访问。需要有域名证书,介绍如何生成https证书。域名任意前缀都支持。本例子使用certbot签发letsencrypt证书,让spring boot后端使用。达到后端https的目的。
  • 资料
    https://letsencrypt.org/
    https://certbot.eff.org/lets-encrypt/ubuntubionic-nginx

1.安装certbot

sudo apt-get update
sudo apt-get install software-properties-common
sudo add-apt-repository universe
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update

sudo apt-get install certbot python3-certbot-nginx

2.ssl证书生成与域名增加TXT记录

  • 2.1开始生成证书,把abc.com换成自己的域名
sudo certbot certonly  -d "*.abc.com" -d abc.com --manual --preferred-challenges dns-01  --server https://acme-v02.api.letsencrypt.org/directory
  • 2.2 执行上方语句会出现如下片段
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please deploy a DNS TXT record under the name
_acme-challenge.abc.com with the following value:

lSdsQvr1bsdfsffsdfwwfwefwewesfdfsdfss

Before continuing, verify the record is deployed.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  • 2.3 添加txt解析记录呢。去域名购买商(如xx云 - 域名管理)那里,增加解析,然后选择解析类型为TXT即可。
    就是说,把 _acme-challenge.abc.com作为名字,lSdsQvr1bsdfsffsdfwwfwefwewesfdfsdfss作为值,添加txt解析记录。

  • 2.4 查看最终文件结果

$ sudo ls .
README	cert.pem  chain.pem  fullchain.pem  privkey.pem

3.生成spring boot可用的PKCS12证书

openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -out  abc.p12

在spring boot 中使用,在配置文件application.properties中

###ssl
server.ssl.key-store:classpath:abc.p12
server.ssl.key-store-password:自己的密码
server.ssl.keyStoreType:PKCS12

此时放到服务器后就是可用的https访问了,并且域名也是txt了。

你可能感兴趣的:(Java,Web,Framework,https,ssl,java)