AWS证书运用示例 ssl https

AWS证书运用示例


摘要:今天在aws上申请了一个ssl,但是在申请成功后发现它没有给我把秘钥down下来,那这样我就不能再我的nginx服务器上配置https了,所以我可以认为这个证书没有任何实际作用,很明显结果肯定不是这样的,对吧。经过在网上查看资料看到aws的ssl证书要跟它自带的ELB,API GATEWAY等其他一些应用联合使用才可以发挥其作用,所以后面我将给大家演示一下,ssl和elb联合作战的效果。

示例图如下

这里写图片描述

互联网通过https访问nginx服务器,首先访问的是elb的443端口,并且elb上面有配置ssl,然后在转发到后端的nginx服务器80端口


申请证书

(1)在aws服务上搜索ssl
这里写图片描述

(2)申请证书
这里写图片描述

(3)申请公有证书
这里写图片描述

(4)提交你要验证的域名
这里写图片描述

(5)验证
这里写图片描述

(6)
这里写图片描述

现在显示等待验证大概差不多半个小时就ok了,结果如下图所示

(7)结果
这里写图片描述

这样我们的ssl就申请成功,后面我们搭建nginx


搭建nginx

(1)申请两个EC2这里我就不演示怎么申请ec2了,默认已经建立了,然后登上其中的一台配置nginx
yum install -y nginx
配置文件如下:
这里写图片描述
这里写图片描述
这里写图片描述

开启80端口,不出意外如果我们打开w网页能出现hello这个页面就ok了


建立ELB

(1)在服务里面可以搜索
这里写图片描述
(2)创建负载均衡
这里写图片描述
(3)创建https负载均衡
这里写图片描述
这里写图片描述
(4)配置证书
这里写图片描述
(5)配置安全组
这里写图片描述
(6)配置后端服务器组
这里写图片描述
(7)配置后端服务器
这里写图片描述

(8)完成后我们可以看到我们的ELB
这里写图片描述


验证

**我们发现我们的elb是以域名的形式出现的,其实这个在生产环境中很不好用,所以有两种解决方法
1. 在申请ELB的时候指定固定的EIP这样我们以后绑定域名的时候就可以用ip绑定了
2. 我们在其他地方ping这个域名然后把ip记录下来**

目前我用得是第二种方法:
这里写图片描述

因为是测试的所以我们在本地服务器做一个hosts解析就ok了 如下:
这里写图片描述

然后我们访问域名:
这里写图片描述

域名正常,也可以看到办法机构:
这里写图片描述


总结:截图还算是比较多的,这样便于理解,也便于大家学习,有什么异议可以留言讨论,谢谢

转自:https://blog.csdn.net/xiaoxiao__cc/article/details/82253432
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是使用 aws-sdk-s3 和 Minio C++ 库在 Visual Studio 中上传和下载文件的示例代码: ```c++ #include <aws/core/Aws.h> #include <aws/s3/S3Client.h> #include <aws/s3/model/PutObjectRequest.h> #include <aws/s3/model/GetObjectRequest.h> #include <iostream> #include <fstream> #include <minio/minio.h> #include <minio/minio_io.h> using namespace Aws::S3; using namespace Aws::S3::Model; int main() { // 初始化 AWS SDK Aws::SDKOptions options; Aws::InitAPI(options); // 建立 S3 客户端 Aws::Client::ClientConfiguration config; config.scheme = Aws::Http::Scheme::HTTP; config.endpointOverride = "localhost:9000"; // Minio 服务器地址和端口 config.verifySSL = false; // 关闭 SSL 验证 S3Client s3_client(config); // 上传文件到 Minio const std::string bucket_name = "my-bucket"; const std::string object_name = "my-object"; const std::string file_path = "path/to/my/file"; std::shared_ptr<std::iostream> file_stream = std::make_shared<std::fstream>(file_path.c_str(), std::ios_base::in | std::ios_base::binary); PutObjectRequest put_request; put_request.SetBucket(bucket_name); put_request.SetKey(object_name); put_request.SetBody(file_stream); auto put_outcome = s3_client.PutObject(put_request); if (put_outcome.IsSuccess()) { std::cout << "File uploaded successfully!" << std::endl; } else { std::cout << "File upload failed: " << put_outcome.GetError().GetMessage() << std::endl; } // 下载文件从 Minio const std::string downloaded_file_path = "path/to/my/downloaded/file"; GetObjectRequest get_request; get_request.SetBucket(bucket_name); get_request.SetKey(object_name); auto get_outcome = s3_client.GetObject(get_request); if (get_outcome.IsSuccess()) { std::shared_ptr<Aws::IOStream> body_stream = get_outcome.GetResult().GetBody(); Minio::ObjectReadStream object_stream(body_stream); std::ofstream downloaded_file(downloaded_file_path, std::ios_base::out | std::ios_base::binary); downloaded_file << object_stream.rdbuf(); std::cout << "File downloaded successfully!" << std::endl; } else { std::cout << "File download failed: " << get_outcome.GetError().GetMessage() << std::endl; } // 关闭 AWS SDK Aws::ShutdownAPI(options); return 0; } ``` 请注意,此示例代码假设你已经在 Minio 上创建了一个名为 "my-bucket" 的存储桶,并且已经在本地计算机上安装了 Minio 服务器。你需要根据你的实际情况进行修改。 此外,请不要忘记在代码中包含必要的头文件,并将 AWS SDK 和 Minio C++ 库添加到项目中,并在项目属性中设置正确的库和头文件路径。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值