https部署

準備證書及祕鑰html

 

方式1、springboot項目可直接在yml中配置java

  一、須要將證書轉換成jks或p12格式,如linux

  多個crt證書轉爲pem:nginx

  

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 

  二、而後在yml中進行配置spring

  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      #證書類型

  

  三、啓動應用,順利的話此時訪問https://domain:8443/就訪問到了原先的頁面centos

  四、端口映射,將443端口映射到8443端口 springboot

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

    此時訪問 https://domain便可dom

  這種方式可能涉及到證書屢次轉換,並須要改動項目的配置文件所以不太推薦。tcp

 

方式2、使用nginx配置https

  一、首先安裝nginx,檢查是否有支持ssl模塊,沒有的話記得安裝

  二、配置

  

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值指向服務真實的訪問地址

  三、啓動nginx

  四、訪問https://domain便可

  五、配置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

相關文章
相關標籤/搜索