利用Nginx实现访问网址返回公钥文件

目标实现访问如pb.example.com,浏览器能自动下载公钥文件。

这样以后让别人加自己ssh就容易了。

直接给配置文件,对应有注释:

server {
listen 80;
listen [::]:80;
listen 443 ssl; # https配置
listen [::]:443 ssl; # https配置

server_name pb.example.com; #填写你域名
ssl_certificate /etc/nginx/cert/pub.example.com/crt.pem; # ssl公钥证书
ssl_certificate_key /etc/nginx/cert/pub.example.com/crt.key; # ssl私钥证书位置位置
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; # https配置
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; # https配置
ssl_prefer_server_ciphers on; # https配置
ssl_session_cache shared:SSL:10m; # https配置
ssl_session_timeout 10m; # https配置

# id_rsa.pub应修改为你的证书在你的计算机上的命名,下面也要修改
location = /id_rsa.pub{
root /var/www/publicKey; # 证书存放的目录
# 你想让证书下载之后浏览器默认给的命名,修改id_rsa.pub为你想要的名字
add_header Content-Disposition "attachment;filename=id_rsa.pub";
}
# 让访问者无论访问哪个路径,都会被重定向到下载文件
location / {
# id_rsa.pub应修改为你的证书在你的计算机上的命名,上面也要修改
rewrite ^ /id_rsa.pub break;
}