家庭网络如何申请ssl

家庭网络一般是需要一个公网ip ,但是家庭的网络ip 一般是会变的,需要一个ddns 服务器来

可以看我这篇【docker 设置 阿里云域名解析ddns】

docker 设置 阿里云域名解析ddns_lean789的博客-CSDN博客_docker 阿里云解析

前提是你需要准备一个域名

通过这边后,域名解析就可以了,就可以通过你自己的域名和端口来访问你的服务了

但是这时 一般是http 请求。http 请求一般是在以明文的形式传输的,会产生不安全因素,

https 是在http 的基础上加了ssl  证书认证,访问是安全的,本篇文章介绍,如果通过nginx 来设置家庭网络的安全访问

本人的路由器是Padavan ,之前也是查询网上资料,一般是让自己的域名在阿里云解析,或者直接在阿里云买的域名都可以,然后申请免费的ssl 证书,然后再Padavan 路由器的

这边设置https , 然后阿里云下载的ssl 文件,导入到

我这边也进行了操作,可能是我设置的流程或者步骤不对,最终请求的还是不安全的链接显示。

当天晚上查找相关资料,看到可以通过nginx 来进行代理转发。正好我家庭网络里有一个设备,安装了docker ,通过docker 安装nginx ,在nginx 里面配置ssl 文件。

在这边我申请的ssl 证书是通过 freessl 免费申请的,

 输入自己的域名,选择【通过浏览器生成】

然后下载相关 的证书既可,

最后的一步是设置nginx 的nginx.conf 配置 和路由器的端口转发

端口范围是 外网访问的端口地址,

内网ip  是安装nginx 的家庭内部局域网的ip ,

本地端口是设置的nginx 可以访问的端口(防火墙需要打开端口)

----nginx 端口设置

我这边的nginx服务是docker创建的,所以在 portainer 设置nginx 的端口 

左边host 的端口是宿主机可以访问的端口,即路由器那边设置的局域网的端口

右边的container 的端口是容器内的端口,下面的 nginx.conf 设置里面需要访问的端口信息(不熟悉的话,最好设置端口一样)

docker 安装nginx
sudo mkdir -p /opt/app/nginx/www
sudo mkdir -p /opt/app/nginx/conf
sudo mkdir -p /opt/app/nginx/logs
sudo mkdir -p /opt/app/nginx/ssl

 
把下载的证书放到 /opt/app/nginx/ssl 目录下

网上下载一个nginx.conf 模板到/opt/app/nginx/conf目录下面
nginx 容器运行
sudo docker run --restart=always -d --privileged=true -p 8080:80 --name mynginx -v /opt/app/nginx/www:/usr/share/nginx/www -v /opt/app/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /opt/app/nginx/ssl:/usr/share/nginx/ssl -v /opt/app/nginx/logs:/var/log/nginx  nginx:latest

上面的-p 可以设置多个端口,按照自己需要访问的服务端口来配置

nginx.conf 模板

events {
    worker_connections  1024;
}


http {
    #client_max_body_size 1024m;
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    client_max_body_size   1024m;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    gzip on;
    gzip_min_length 1k;
    gzip_comp_level 9;
    gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
    gzip_vary on;
    gzip_disable "MSIE [1-6]\.";
	
	server {
	    listen       8080 ssl; 
	    server_name  域名;
        charset utf-8;
	    ssl_certificate /usr/share/nginx/ssl/域名.crt; # 证书路径根据上面生成的来定
	    ssl_certificate_key /usr/share/nginx/ssl/域名.key;
	    ssl_protocols TLSv1.1 TLSv1.2;
        ssl_ciphers 'xxxxxxxxxxxxxxxx自己的ssl_ciphers';
	    ssl_prefer_server_ciphers on;
	    ssl_session_cache shared:SSL:10m;

	    error_page   500 502 503 504  /50x.html;
	   
	    location / {
			proxy_set_header    Host            	 $http_host;
			proxy_set_header    X-Real-IP            $remote_addr;
			proxy_set_header    REMOTE-HOST     	 $remote_addr;
			proxy_set_header    X-Forwarded-For  	 $proxy_add_x_forwarded_for;
			proxy_pass          http://局域网提供服务的ip:服务端口/;   
	    }       
    }

}

这样,可以通过https:ip:端口,来访问对应的服务,如果需要多个服务,可以设置多个server 

本人通过freessl 下载的证书里面只有2个文件,【.pem 和 .key 文件】,但是我看nginx里面配置的是需要的   .crt 文件, 然后将  .pem 文件重命名为 .crt 文件就可以了。

基本思路是域名解析后访问路由器,路由器进行端口转发,转发到内网的 nginx 的ip , 然后通过nginx 的代理转发到 局域网内的 各个服务 。

​​​​​​​

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 10054是一个与网络连接相关的错误。这个错误通常出现在使用Git进行提交或克隆操作时。可以根据以下几种方法来解决这个问题: 1. 检查网络连接:首先,确保你的网络连接正常并且稳定。这个错误通常是由于网络过慢或不稳定导致的。可以尝试使用不同的网络连接,者连接到更稳定的网络上再次尝试操作。 2. 更换网络环境:如果你使用的是公共Wi-Fi或者公司的网络,有时候这些网络对Git操作进行了限制。尝试切换到一个不同的网络环境,例如使用个人热点或者使用家庭网络来进行操作。 3. 使用代理:如果你在使用Git时遇到了网络问题,可以尝试配置代理。可以使用`git config`命令来设置代理,具体的设置方法可以参考Git的官方文档。 4. 手动下载:如果以上方法都没有解决问题,你可以尝试手动下载所需的文件。在Git操作中遇到网络问题时,你可以手动从源码管理系统(例如GitHub)下载所需的文件,然后将其放置在正确的位置,再进行后续的操作。 总结起来,OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 10054错误通常是由于网络连接问题引起的。通过检查网络连接、更换网络环境、使用代理或者手动下载文件等方法,可以解决这个问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [提交Git时报错:OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 10054](https://blog.csdn.net/qq_42203909/article/details/123882309)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [安装vagrant报错OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 54](https://download.csdn.net/download/weixin_38627213/14043306)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [ERROR: RPC failed; curl 56 OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 10054解决方法](https://blog.csdn.net/JISOOLUO/article/details/103625488)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值