zoukankan      html  css  js  c++  java
  • 6,nginx 设置自签名证书以及设置网址http强制转https访问

    自签名证书可以在自己的内网环境或者非对外环境使用,保证通信安装

    1、生产证书

    直接使用脚本生产:

    中途会提示书如1次域名和4次密码,把一下文件保存为sh文件,赋予x权限后 直接执行,根据提示输入。

    #!/bin/sh
    
    # create self-signed server certificate:
    
    read -p "Enter your domain [www.example.com]: " DOMAIN
    
    echo "Create server key..."
    
    openssl genrsa -des3 -out $DOMAIN.key 1024
    
    echo "Create server certificate signing request..."
    
    SUBJECT="/C=US/ST=Mars/L=iTranswarp/O=iTranswarp/OU=iTranswarp/CN=$DOMAIN"
    
    openssl req -new -subj $SUBJECT -key $DOMAIN.key -out $DOMAIN.csr
    
    echo "Remove password..."
    
    mv $DOMAIN.key $DOMAIN.origin.key
    openssl rsa -in $DOMAIN.origin.key -out $DOMAIN.key
    
    echo "Sign SSL certificate..."
    
    openssl x509 -req -days 3650 -in $DOMAIN.csr -signkey $DOMAIN.key -out $DOMAIN.crt
    
    echo "TODO:"
    echo "Copy $DOMAIN.crt to /etc/nginx/ssl/$DOMAIN.crt"
    echo "Copy $DOMAIN.key to /etc/nginx/ssl/$DOMAIN.key"
    echo "Add configuration in nginx:"
    echo "server {"
    echo "    ..."
    echo "    listen 443 ssl;"
    echo "    ssl_certificate     /etc/nginx/ssl/$DOMAIN.crt;"
    echo "    ssl_certificate_key /etc/nginx/ssl/$DOMAIN.key;"
    echo "}"

    2、拷贝证书到nginx指定位置

    上述脚本执行完成后会在当前目录生产4个文件,例如我的:

    我们知晓crt和key证书,拷贝走存放到nginx安装目录下一个单独目录即可,没有强制要求,一会nginx配置文件写真实路径即可。

    3、增加nginx  ssl文件

    server {
         listen       443;
         ssl on;
         server_name  www.zhangbei.com;
         root         /usr/local/nginx/html/;
    
         ssl_certificate /usr/local/nginx/conf/ssl/www.zhangbei.com.crt;
         ssl_certificate_key /usr/local/nginx/conf/ssl/www.zhangbei.com.key;
    
    }

    配置完成后重新加载nginx配置文件

    nginx -s reload

    4、使用https加上你的域名访问即可

    地址栏前面会提示危险,不用理会,只是不可信而已,但是我们已经实现了ssl加密访问

    5、强制转换http访问为http

    修改nginx默认配置文件

    增加如下rewrite操作,并从新加载nginx配置文件,这样就实现了http访问自动调整到https访问,保证访问安全。

  • 相关阅读:
    Shell入门
    Linux基本的指令操作
    python网络爬虫入门范例
    Android中scrollview的scrollto方法不起作用的解决办法
    (转)Android利用canvas画各种图形(点、直线、弧、圆、椭圆、文字、矩形、多边形、曲线、圆角矩形)
    unable to load class org.codehaus.groovy.runtime.typehandling.shorttypehandling解决方法
    JavaScript运行原理
    AsyncTask的doInBackground不工作原因分析
    Android中的多线程与异步任务
    使用webview加载网页时session同步
  • 原文地址:https://www.cnblogs.com/xiaomai-rhce/p/14168914.html
Copyright © 2011-2022 走看看