准备证书及秘钥

方式一、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

https部署的更多相关文章

  1. 阿里云Https部署网站

    0.开始之前 文章图片很多,注意流量 首先你得准备好一个已经备案成功的域名,并且有一个在阿里云的服务器部署了的网站. 然后就是你迫切的希望升级网站为HTTPS部署. 那么我们开始吧! 1.申请CA证书 ...

  2. HTTPS 部署简要指南

    许多Web开发者都知道SSL,但常见的情况是SSL没有完整地部署或者没有部署在它应该部署的地方.这篇关于何时及如何部署SSL的简要指南,将帮助你避免大多数常见错误. 要点 如果你有任何机密信息,或者你 ...

  3. etcd+https部署

    关闭防火墙 关闭selinux 下载所需的包(cfssl,生成证书工具) mkdir /usr/local/src/etcd/ cd /usr/local/src/etcd/ wget https:/ ...

  4. 宝塔https部署没成功的原因排查

    今天ytkah在迁移一个客户网站的时候出了点问题,网站从旧的服务器(windows)换到新的服务器(阿里云centos 7,已经安装了宝塔面板),网站之前有用comodo的ssl证书,因为快要过期了, ...

  5. ubuntu NGINX uwsgi https 部署Django 遇到的问题

    搞了3天终于把Django成功部署到Ubuntu,记录一下: 引用来自泡泡茶壶: Ubuntu下的Nginx + Uwsgi + Django项目部署详细流程 前提说明: Django作为小程序的后端 ...

  6. Window nginx+tomcat+https部署方案 支持ios9

    客户端和 Nginx 之间走的 HTTPS 通讯,而 Nginx 到 Tomcat 通过 proxy_pass 走的是普通 HTTP 连接. 下面是详细的配置(Nginx 端口 80/443,Tomc ...

  7. Flask+Nginx+Supervisor+Gunicorn+HTTPS部署教程(CentOs)

    写在前面 之前的文章中,我们详细讲述了怎样安装 Nginx,Python,Supervisor,Gunicorn,HTTPS.经本人多次测试是完全可以跑通的,那么本篇将介绍怎样将这些组合起来运行一个H ...

  8. WORDPRESS改为https部署

    1.确保你已经正确开启了httpd 2.4.6的https配置,并且配置了该网站的虚拟主机,如下所示: <VirtualHost *:443> DocumentRoot "/ap ...

  9. Harbor + Https 部署

    关闭防火墙和selinux systemctl stop firewalld sed -i 's/SELINUX=.*/SELINUX=disabled/g' /etc/sysconfig/selin ...

随机推荐

  1. windows-redis 集群搭建

    Windows 配置Reids集群 Redis Cluster 1. 下载安装Redis Redis官方不支持Windows,但是Microsoft Open Tech group在 GitHub上开 ...

  2. find命令结合cp bash mv 命令使用的4种方式

    工作经常需要用find结合其它命令一起使用,下面介绍4种结合方式. 例: 用find查找/data目录下,以.txt文件结尾的文件并复制到/tmp下 方法一 find与|xargs是黄金搭档,-t 参 ...

  3. 【BZOJ】3203: [Sdoi2013]保护出题人(几何+三分+特殊的技巧)

    http://www.lydsy.com/JudgeOnline/problem.php?id=3203 wa无数次QAQ,犯sb错....一是数组没有引用...二是输出转成了int(越界了sad). ...

  4. Ubuntu修改默认root及密码

    Ubuntu的默认root密码是随 机的,即每次开机都有一个新的 root密码. 我们可以在终端输入命令 sudo passwd, 然后输入当前用户的密码,enter, 终端会提示我们输入新的密码并确 ...

  5. boost - 正则表达式xpressive

     正则表达式是一套处理文本强有力的工具: 它使用一套复杂的语法规则,可以解决文本处理领域的绝大多数问题; 而这些问题通常是字符串算法很难甚至无法解决的. C++98标准中没有内置的正则表达式支持,使得 ...

  6. Linux下android开发环境配置

    1.安装jdk 1.到sun官网下载jdk(附jdk6下载地址),根据自己的ubuntu版本选择合适的jdk版本.如你用的是ubuntu 32位系统则选择下载jdk-6u41-linux-i586.b ...

  7. 桥梁模式(Bridge)

    桥梁模式属于结构类的设计模式,示意结构图如下:

  8. Eclipse获取签名证书的SHA1

    签名后的获取方式 :http://jingyan.baidu.com/article/3ea51489da3bc252e71bba59.html 未签名的获取方式:http://www.th7.cn/ ...

  9. Caused by: java.lang.IllegalArgumentException: @EnableAsync annotation metadata was not injected

    需要注意的是ComponentScan 不能扫描 org.springframework 否则会报错,要扫描指定的package才行

  10. A day

    今天推荐一部微电影,从老人的视角看这个社会. 老人在途中买橘子的经历仿佛是看到了当年自己的影子. A day对于有些人来说,很长.对于某些人来说很短暂.这一天所做的事情就是穿过马路走过天桥去水果店买四 ...