自建ssl证书进行https访问

生成自建证书

  • 生成私钥文件
openssl genrsa -out private.key 1024
# -out 参数指定密钥文件存放的位置和名字,1024是指密钥文件的长度,一般为1024或者2048
  • 生成一个证书请求
openssl req -new -key private.key -out cert_req.csr
# 指定密钥密钥文件来生成一个ca请求
# 这个步骤会要求填入国家区域以及域名等信息
# 最重要的一行是Common Name,需要填入与服务器关联的域名,或者是您服务器的公共IP地址
  • 将请求发给CA机构进行签名
openssl x509 -req -days 365 -in cert_req.csr -signkey private.key -out server_cert.crt

相关参数说明
req:此子命令指定我们要使用X.509证书签名请求(CSR)管理。“X.509”是SSL和TLS为其密钥和证书管理所遵循的公钥基础结构标准。我们想要创建一个新的X.509证书,所以我们使用这个子命令
-x509:通过告诉实用程序我们要创建自签名证书而不是生成证书签名请求(通常会发生)来进一步修改上一个子命令
-nodes:这告诉OpenSSL跳过用密码保护我们的证书的选项。当服务器启动时,我们需要Nginx能够在没有用户干预的情况下读取文件。密码短语会阻止这种情况发生,因为我们必须在每次重启后输入密码
-days 365:此选项设置证书被视为有效的时间长度。我们在这里设置了一年

  • 生成文件的列表
    • cert_req.csr 请求
    • server_cert.crt 签名证书
    • private.key 密钥

nginx配置修改

server {
        listen  443     ssl;
        server_name     sms_task.local;
        ssl_certificate         ssl/server_cert.crt; 
        #证书和密钥文件均放在nginx/conf/ssl目录下
        ssl_certificate_key     ssl/private.key;
        ssl_session_cache    shared:SSL:10m;
        #设置存储session参数的缓存的类型和大小
        ssl_session_timeout  5m;
        #指定客户端可以重用会话参数的时间
        ssl_protocols        TLSv1 TLSv1.1 TLSv1.2;
        access_log           /var/log/nginx/sms_task.log;
        error_log            /var/log/nginx/sms_task.error.log;
        location / {
                        proxy_pass      http://sms-task;
                        #指定转发的上游服务器
                        proxy_set_header X-Real-IP $remote_addr;
                }
        }
  • 强制重写(可以不使用)
server{
        listen 80;
        server_name sms_task.local;
        rewrite "^/(.*)$" https://sms_task.local/$1 break; #访问时做自动跳转
}
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值