zoukankan      html  css  js  c++  java
  • https部署

    准备证书及秘钥

    方式一、springboot项目可直接在yml中配置

      1、需要将证书转换成jks或p12格式,如

      多个crt证书转为pem:

      

    cat xxx.crt xxx2.crt xxx3.xrt xxx4.crt > server.pem
    
      pem证书转为jks: 
    
      //PEM--->PFX
      openssl pkcs12 -export -out test.pfx -inkey test.key -in test.pem
      //PFX--->JKS
      keytool -importkeystore -srckeystore test.pfx -destkeystore test.jks -srcstoretype PKCS12 -deststoretype JKS
      crt证书转为jks:
    
      //CRT-->CER
      openssl x509 -inform pem -in test.crt -outform der -out test.cer
      //CER--->JKS
      keytool -import -v -alias test -file test.cer -keystore test.jks -storepass 123456 -noprompt 

      2、然后在yml中进行配置

      server.port=8443             #https默认是443端口好,由于linux下非root用户无法使用443,这里改为8443)
      server.ssl.key-store:/xx/xx/server.jks    #证书绝对路径
      server.ssl.key-store-password: xxx               #证书转换时设置的密码
      server.ssl.keyStoreType: JKS      #证书类型
    

      

      3、启动应用,顺利的话此时访问https://domain:8443/就访问到了原先的页面

      4、端口映射,将443端口映射到8443端口 

        iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-port 8443

        此时访问 https://domain即可

      这种方式可能涉及到证书多次转换,并需要改动项目的配置文件因此不太推荐。

    方式二、使用nginx配置https

      1、首先安装nginx,检查是否有支持ssl模块,没有的话记得安装

      2、配置

      

    server {
            listen       443;
            server_name  域名;
    
            ssl on;
            ssl_certificate      /xx/pem/xxx.pem;
            ssl_certificate_key  /xx/pem/xxx.key;
    
            ssl_session_cache    shared:SSL:1m;
            ssl_session_timeout  5m;
    
            ssl_ciphers  HIGH:!aNULL:!MD5;
            ssl_prefer_server_ciphers  on;
            location / {
                root   html;
                index  index.html index.htm;
                proxy_pass http://域名对应的ip:8080;
                proxy_set_header X-real-ip $remote_addr;
                proxy_set_header Host $http_host;
            }
    
            #error_page  404              /404.html;
    
            # redirect server error pages to the static page /50x.html
            #
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }    
    }
    注意点:
      填写域名
      指定证书与秘钥绝对路径。证书也可以是crt格式
      proxy_pass值指向服务真实的访问地址

      3、启动nginx

      4、访问https://domain即可

      5、配置http://domain强制跳转到https://domain

      

    server {
            listen       80;
            server_name  域名;
    
            rewrite ^(.*)$  https://域名$1 permanent;
        }
    
    注意点:
        http默认端口为80
        参数$1代表域名后的路径
    

      

    在centos环境下可能会用到的相关命令:

    查看开放端口及映射
    iptables -L -n --line-number
    端口映射
    iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-port 8443
    取消映射
    iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-port 8443
    开放端口
    firewall-cmd --zone=public --add-port=80/tcp --permanent

    firewall-cmd --zone=public --add-port=443/tcp --permanent
    关闭端口
    firewall-cmd --zone=public --remove-port=80/tcp --permanent
    刷新配置
    firewall-cmd --reload

  • 相关阅读:
    vue.js 系列教程
    vue.js 生命周期
    MVVM代码例子
    vue.js windows下开发环境搭建
    Vue.js 之修饰符详解
    elementUi——适合于Vue的UI框架
    Vue.js——60分钟快速入门
    Keil sct分散加载文件
    Keil ARM-CM3 printf输出调试信息到Debug (printf) Viewer
    Cortex-M3(NXP LPC 1788) 启动代码
  • 原文地址:https://www.cnblogs.com/half-two-feet/p/10287660.html
Copyright © 2011-2022 走看看