IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> Linux 项目 nginx、tomcat HTTP转HTTPS -> 正文阅读

[网络协议]Linux 项目 nginx、tomcat HTTP转HTTPS

1、nginx配置https

nginx配置https需要私钥和证书,使用openssl生成私钥和自签证书。

首先安装openssl

yum -y install openssl openssl-devel

新建存储证书和密钥的目录,并进入该目录

mkdir /usr/nginx/cer

cd /usr/nginx/cer

生成私钥和自签证书

openssl req -newkey rsa:2048 -nodes -keyout rsa_private.key -x509 -days 365 -out cert.crt -subj "/C=CN/ST=GD/L=SZ/O=vihoo/OU=dev/CN=当前服务器的IP/emailAddress=test@qq.com"

// 简述参数
-newkey 自动生成密钥,rsa:2048 使用2048位RSA非对称加密算法,-nodes 不加密密钥,-keyout rsa_private.key 生成私钥rsa_private.key。不要生成公钥,签发的证书中包含了公钥。

-x509 证书类型是自签证书,-days 365 证书有效期是365天,-out cert.crt 生成cert.crt文件,cert.crt是自签证书。

-subj 生成证书的信息,包括国家(只能填写两个字符)、省/洲、市、公司、部门、个人信息(填写服务器IP即可)、邮箱。

查看目录下私钥和证书是否已生成;

修改nginx配置文件

ssl_certificate "/usr/nginx/cer/cert.crt";
ssl_certificate_key "/usr/nginx/cer/rsa_private.key";

也有配置比较全的参数

ssl on;    
ssl_certificate "/usr/nginx/cer/cert.crt";
ssl_certificate_key "/usr/nginx/cer/rsa_private.key";

ssl_session_cache    shared:SSL:10m;
ssl_session_timeout  5m;
# ssl_server_tokens off;
# ssl_ciphers HIGH:!aNULL:!MD5;
ssl_ciphers  ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers  on;

重启nginx
?

systemctl restart nginx
// 或者 cd到nginx安装路径下
nginx -s?reload

最后 https://IP:端口/ 访问即可。

2、tomcat配置https

首先创建证书,使用JDK自带的keytool工具来生成证书

// cd 到jdk的安装目录 keytool
cd /usr/java/bin/

./keytool -genkey -alias tomcat -keyalg RSA -keystore /usr/tomcat/cer/tomcat.keystore  -validity 6666

// tomcat 指的是别名 -validity 6666 指的是有效时间 
// tomcat.keystore 需要生成的证书,将证书根据开发要求放到指定位置

输入密钥库口令:  test
再次输入新口令:   test
您的名字与姓氏是什么?
  [Unknown]:  192.168.1.100   这里最好写服务器的IP或者域名
您的组织单位名称是什么?
  [Unknown]:  test      
您的组织名称是什么?
  [Unknown]:  test       可随意写
您所在的城市或区域名称是什么?
  [Unknown]:  beijing			可随意写
您所在的省/市/自治区名称是什么?
  [Unknown]:  beijing			可随意写
该单位的双字母国家/地区代码是什么?
  [Unknown]:  cn			
CN=www.bo.org, OU=xinwei, O=xinwei, L=bj, ST=bj, C=cn是否正确?
  [否]:  y 
  
// 然后要求我们输入tomcat的主密码,我们设置跟上面第一次输入的密码相同,按回车


// 这里会提示 
keytool -importkeystore -srckeystore /usr/tomcat/cer/tomcat.keystore -destkeystore /usr/tomcat/cer/tomcat.keystore -deststoretype pkcs12

// 如果需要导出证书的可以执行
keytool -export -alias tomcat -keystore /usr/tomcat/cer/tomcat2.keystore -file /usr/tomcat/cer/tomcat.cer

修改tomcat配置文件server.xml

<!--  443访问端口 -->
<Connector
     protocol="org.apache.coyote.http11.Http11NioProtocol"
     port="443" maxThreads="200"
     scheme="https" secure="true" SSLEnabled="true"
     keystoreFile="生成的证书路径,如上面配置的/usr/tomcat/cer/tomcat.keystore" 
     keystorePass="证书密码,如上面配置的test"
     clientAuth="false" sslProtocol="TLS"
/>

如果是springboot项目需要配置

需要在启动类加如下代码

    @Bean
    public Connector connector(){
        Connector connector=new Connector("org.apache.coyote.http11.Http11NioProtocol");
        connector.setScheme("http");
        connector.setPort(80);
        connector.setSecure(false);
        connector.setRedirectPort(8080);    #这里的8080可更改为项目需要端口,其它不做修改
        return connector;
    }

    @Bean
    public TomcatServletWebServerFactory tomcatServletWebServerFactory(Connector connector)            
    {
        TomcatServletWebServerFactory tomcat=new TomcatServletWebServerFactory(){
            @Override
            protected void postProcessContext(Context context) {
                SecurityConstraint securityConstraint=new SecurityConstraint();
                securityConstraint.setUserConstraint("CONFIDENTIAL");
                SecurityCollection collection=new SecurityCollection();
                collection.addPattern("/*");
                securityConstraint.addCollection(collection);
                context.addConstraint(securityConstraint);
            }
        };
        tomcat.addAdditionalTomcatConnectors(connector);
        return tomcat;
    }

然后修改项目的配置文件

## 这里配置的是证书存放的位置
server.ssl.key-store=/usr/tomcat/cer/tomcat.keystore
## 这里是查看证书需要的密钥
server.ssl.key-store-password=test
## 这是以上步骤申请证书时的那个别名
server.ssl.key-alias=tomcat
## 这里的PKCS12格式配置的是一种互联网标准
server.ssl.key-store-type=PKCS12

重新启动 https访问

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-07-17 16:57:20  更:2022-07-17 17:00:33 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 12:20:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码