nginx配置访问https[自签版]

通过openssl生成证书

(1)设置server.key,这里需要设置两遍密码:

openssl genrsa -des3 -out server.key 1024 

(2)参数设置,首先这里需要输入之前设置的密码:

openssl req -new -key server.key -out server.csr

然后需要输入如下的信息

Country Name (2 letter code) [AU]: 国家名称
State or Province Name (full name) [Some-State]: 省
Locality Name (eg, city) []: 城市
Organization Name (eg, company) [Internet Widgits Pty Ltd]: 公司名
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []: 网站域名
Email Address []: 邮箱

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: 这里要求输入密码
An optional company name []:

(3)写RSA秘钥(这里也要求输入之前设置的密码):

openssl rsa -in server.key -out server_nopwd.key

(4)获取证书

openssl x509 -req -days 365 -in server.csr -signkey server_nopwd.key -out server.crt

(5)完成这一步之后就得到了我们需要的证书文件和RSA私钥了

  • server.crt
  • server_nopwd.key

配置nginx服务器,支持https访问

把前面一步生成的文件拷贝出来,然后修改nginx配置文件,添加ssl支持。
在nginx配置文件新增server节点以便用于支持https的443端口。

server {
    listen    443 ssl;
    server_name  127.0.0.1;             #域名

    ssl on;        #如果强制HTTPs访问,这行要打开
    ssl_certificate /ssl/server.crt;           #分别将路径指向证书文件和密匙文件
    ssl_certificate_key /ssl/server_nopwd.key;

    ssl_session_cache    shared:SSL:1m;
    ssl_session_timeout  5m;

     # 指定密码为openssl支持的格式
     ssl_protocols  SSLv2 SSLv3 TLSv1.2;

     ssl_ciphers  HIGH:!aNULL:!MD5;  # 密码加密方式
     ssl_prefer_server_ciphers  on;   # 依赖SSLv3和TLSv1协议的服务器密码将优先于客户端密码

     # 定义首页索引目录和名称
     location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
     }

    #重定向错误页面到 /50x.html
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

后记

自签证书是不会被浏览器所信任的证书,用户在访问自签证书时,浏览器会警告用户此证书不受信任,需要人工确认是否信任此证书。所有使用自签证书的网站都明确地告诉用户出现这种情况,用户必须点信任并继续浏览!这就给中间人攻击造成了可之机。

原文地址:https://www.cnblogs.com/cjunn/p/12237892.html

时间: 2024-08-01 15:16:03

nginx配置访问https[自签版]的相关文章

为微信小程序开发做准备,在Centos 6.8下利用letsencrypt.sh脚本为nginx 配置免费https证书

原文链接: http://phpecshop.blog.51cto.com/6296699/1891737 最近在做微信小程序商城开发的时候,阅读官方api文档发现要求https,的路程. wx.request(OBJECT) wx.request发起的是 HTTPS 请求. 于是开始了在Centos 6.8下利用letsencrypt.sh脚本为nginx 配置免费https(Let's Encrypt SSL证书) 1.下载letsencrypt.sh # wget https://raw.

nginx配置访问频率

nginx可以通过limit_conn_zone和limit_req_zone两个组件来限制客户端访问服务端的目录和文件的频率和次数,能够抵挡住部分cc.ddos攻击. 限制访问频率: http{ ... #定义一个名为allips的limit_req_zone用来存储session,大小是10M内存, #以$binary_remote_addr 为key,限制平均每秒的请求为20个, #1M能存储16000个状态,rete的值必须为整数, #如果限制两秒钟一个请求,可以设置成30r/m lim

Nginx配置访问权限

基于IP配置Nginx的访问权限 Nginx配置通过两种途径支持基本访问权限的控制,其中一种是由HTTP标准模块ngx_http_access_module支持的,通过IP来判断客户端是否拥有对Nginx的访问权限,这里包括两个指令: allow指令,用于设置允许访问Nginx的客户端IP: allow address | CIDR | all #address,允许访问的客户端IP,不支持同时设置多个.如果有多个IP需要设置,需要重复使用allow指令 #CIDR,允许访问的客户端的CIDR地

nginx配置本地https

客户端如何验证服务器的证书呢?服务器自己的证书必须经过某"权威"证书的签名,而这个"权威"证书又可能经过更权威的证书签名,这么一级一级追溯上去,最顶层那个最权威的证书就称为根证书.根证书直接内置在浏览器中,这样,浏览器就可以利用自己自带的根证书去验证某个服务器的证书是否有效. 如何创建一个自签名的SSL证书步骤: 1.创建Key: openssl genrsa -des3 -out server.key 2048 获得了server.key文件,以后给nginx使用

nginx配置支持https和wss(websocket)协议

server { listen 80; listen 443 ssl http2; server_name lyz810.com; root /website/lyz810-main; ssl_certificate certificate/lyz810.com.crt; ssl_certificate_key certificate/lyz810.com.key; location /websocket/ { internal; if ( $http_sec_websocket_protoco

Ubuntu + Nginx 配置全站https访问

最近跟室友要一起搞一个个人公众号,提前想把生态想清楚了,所以准备部署一个网站 正好公司有Microsoft Visual Studio Professional订阅,每个月有50刀免费额度,对于Azure来说50刀也不算什么,不过支撑一个个人网站还是可以的,毕竟当前还没有多少用户,等用户数量庞大以后也就不愁server的问题了hiahia 好了跑偏了. 网站暂定先用WordPress,自己开发能力不强,加上现在WordPress的SEO好像不是很差,综合考虑就是这样. 谁知一看WP文档发现现在要

Tengine(Nginx)配置SSL(https),应用服务器(Tomcat)无需配置

要点:如果系统是内部用,可以通过openssl生成证书,只是访问的时候,浏览器会提示不信任, 1.生成证书,创建存放证书的目录/home/sslkey,并进入该目录,输入如下命令,按照提示填写相关的注册信息,完成后,会生成web.key.web.csr.web.key.org.web.crt这几个文件 openssl genrsa -des3 -out web.key 2048 openssl req -new -key web.key -out web.csr cp web.key web.k

Nginx配置站点https

step 1: 检查nginx的编译参数 使用nginx -V可以查看,如果编译参数中包含http_ssl_module,可以继续下一步操作,如果没有,则需要从新编译. step 2: 申请证书 目前,阿里云等云平台可以申请一定时间的免费证书,这里大家可以自行找下,不再多说 step 3: 配置nginx.conf server { listen 443; server_name hae.top; ssl on; ssl_certificate /usr/local/nginx/key/2146

nginx配置访问xx.com跳转www.xx.com

二.在nginx里面配置 rewrite 规则.打开 Nginx.conf 文件找到server配置段:[以下是我的server配置段] 禁止IP地址访问 server{ listen 80 default_server; server_name _; return 403; } 禁止IP地址访问 server { listen 80; server_name www.xxx.com xxx.com; if ($host != 'www.xxx.com') { rewrite ^/(.*)$ h