首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >自己使用keytool生成证书 和 购买 商业SSL证书,然后并配置Tomcat 的 https

自己使用keytool生成证书 和 购买 商业SSL证书,然后并配置Tomcat 的 https

作者头像
HaC
发布于 2020-12-30 09:59:47
发布于 2020-12-30 09:59:47
2.6K00
代码可运行
举报
文章被收录于专栏:HaC的技术专栏HaC的技术专栏
运行总次数:0
代码可运行

一、SSL证书简介

要想使用https, 首先,我们需要有SSL证书,证书可以通过两个渠道获得:

  • 1.自己生成

虽然安全性不是那么高,但胜在成本低.

目前证书有以下常用文件格式:JKS(.keystore),微软(.pfx),PEM(.key + .crt)。其中,tomcat使用JKS格式,nginx使用PEM格式.

  • 2.公开可信认证机构

例如CA,但是申请一般是收费的。

二、自己生成

JDK自带了一个生成证书 keytool ,目录在 /bin 下面

1、生成证书

输入:(如果你没有配环境变量需要cd到bin目录执行,否则做不到keytool命令)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
keytool -genkey -v -alias HaC -keyalg RSA -validity 3650 -keystore ~/cert/HaC.keystore
  • alias: 别名 这里起名HaC
  • keyalg: 证书算法,RSA
  • validity:证书有效时间,10年
  • keystore:证书生成的目标路径和文件名,替换成你自己的路径即可,我定义的是~/Lee/HaC.keystore

然后随便输入,但是密码要记得:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@VM-8-8-centos ~]# keytool -genkey -v -alias HaC -keyalg RSA -validity 3650 -keystore ~/cert/HaC.keystore
Enter keystore password:
Re-enter new password:
What is your first and last name?
  [Unknown]:  a
What is the name of your organizational unit?
  [Unknown]:  b
What is the name of your organization?
  [Unknown]:  c
What is the name of your City or Locality?
  [Unknown]:  d
What is the name of your State or Province?
  [Unknown]:  e
What is the two-letter country code for this unit?
  [Unknown]:  f
Is CN=a, OU=b, O=c, L=d, ST=e, C=f correct?
  [no]:  y

Generating 2,048 bit RSA key pair and self-signed certificate (SHA256withRSA) with a validity of 3,650 days
        for: CN=a, OU=b, O=c, L=d, ST=e, C=f
Enter key password for <HaC>
        (RETURN if same as keystore password):
Re-enter new password:
[Storing /root/cert/HaC.keystore]

Warning:
The JKS keystore uses a proprietary format. It is recommended to migrate to PKCS12 which is an industry standard format using "keytool -importkeystore -srckeystore /root/cert/HaC.keystore -destkeystore /root/cert/HaC.keystore -deststoretype pkcs12".

2、其他操作,可以不用理会

导出证书:

123456是我在上面输入的密码。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
keytool -exportcert -rfc -alias HaC -file  ~/cert/HaC.cer -keystore  ~/cert/HaC.keystore -storepass 123456
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@VM-8-8-centos apache-tomcat-8.0.53]# keytool -exportcert -rfc -alias HaC -file  ~/cert/HaC.cer -keystore  ~/cert/HaC.keystore -storepass 123456      

Certificate stored in file </root/cert/HaC.cer>

导入到jvm的库

-storepass changeit 表示默认密码是 changeit ,changeit 是jvm的默认密码。不是上面的123456。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
keytool -import -v -trustcacerts -alias HaC -file ~/cert/HaC.cer -storepass changeit -keystore /var/www/web/jdk/jdk1.8.0_261/jre/lib/security/cacerts

删除

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
keytool -delete -alias testkey -keystore /var/www/web/jdk/jdk1.8.0_261/jre/lib/security/cacerts -storepass changeit

查看证书

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
keytool -list -v -alias HaC -keystore /var/www/web/jdk/jdk1.8.0_261/jre/lib/security/cacerts -storepass changeit 

3、配置Tomcat

我本地使用的tomcat版本是tomcat-8.0.53

1、修改端口

tomcat的默认https端口是8443,而https的端口是443,那需要把8443改一下,如果不改,你可以通过 https://www.xxx.cn:8443 这样访问,但是就怪怪的。

找到tomcat目录下的conf/server.xml文件,修改:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  <Connector port="80" protocol="HTTP/1.1"  
             connectionTimeout="20000" 
             redirectPort="443" />

表示80端口跳转到443端口,即http的请求都转发到https

这个没有用到,也改了:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  <!-- Define an AJP 1.3 Connector on port 8009 -->

    <Connector port="8009" protocol="AJP/1.3" redirectPort="443" />

接着把这段注释放开:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"

               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"

               clientAuth="false" sslProtocol="TLS" keystoreFile="/root/cert/HaC.keystore" keystorePass="123456"/>

keystoreFile是你的证书路径,keystorePass的密码是你之前输入的密码。这里的port改成 port=“443” 。

2、自动跳转

http的请求都转发到https

找到tomcat目录下的conf/web.xml文件,末尾 加入:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  <!-- ====================自动跳转——start ===================== -->
  <security-constraint>
    <web-resource-collection >
              <web-resource-name >SSL</web-resource-name>
              <url-pattern>/*</url-pattern>
       </web-resource-collection>                             
       <user-data-constraint>
       <transport-guarantee>CONFIDENTIAL</transport-guarantee>
       </user-data-constraint>
  </security-constraint>
<!-- ====================自动跳转——end ===================== -->
  <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>

重启Tomcat,访问 https://81.71.16.134/ 或者 http://81.71.16.134/

提示证书存在问题。然后点击 继续浏览,就可以使用HTTPS访问了。

给浏览器安装证书:

浏览器 一样提示 不安全的连接。没办法了,浏览器无法信任自定义的证书。

三、使用商用证书

商用的SSL实在是太贵了,比如说赛门铁克、亚信,个人一般都难以承受,let’s encrypt 是一个免费的SSL组织,申请后有3个月的期限,到期可以续杯。

2.1、申请证书

腾讯云 可以免费申请 1年的免费证书,我这里使用腾讯云为例子:

申请完毕,点击下载 , 解压看到这个压缩包有几种服务器的不同类型证书。我们是Tomcat的服务器,就把Tomcat的jks证书上传到服务器。

2.2、tomcat配置https

替换server.xml的jks证书路径和密码即可:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
           
               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
           
               clientAuth="false" sslProtocol="TLS" keystoreFile="/root/cert/www.baimuxym.cn.jks" keystorePass="i24vj6841f1"/>
2.3、设置http自动跳转到https

把http的请求都转发到https

找到tomcat目录下的conf/web.xml文件,末尾 加入:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 <!-- ====================自动跳转——start ===================== -->
  <security-constraint>
    <web-resource-collection >
              <web-resource-name >SSL</web-resource-name>
              <url-pattern>/*</url-pattern>
       </web-resource-collection>                             
       <user-data-constraint>
       <transport-guarantee>CONFIDENTIAL</transport-guarantee>
       </user-data-constraint>
  </security-constraint>
<!-- ====================自动跳转——end ===================== -->
  <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>

然后重启Tomcat。访问 https://baimuxym.cn/

现在就不会提示证书不安全了。

四、设置自定义的首页

上面访问了域名,跳到了tomcat的首页,那要跳转到我们自定义的网站怎么办呢?

找到tomcat目录下的conf/server.xml文件,在标签之间添加上:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<Context path="" docBase="/var/www/web/HaCresume/" debug="0" reloadable="true"/>

表示Tomcat的根目录就是这个了,不再是webapps下面了。

找到tomcat目录下的conf/web.xml文件,修改首页:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    <welcome-file-list>
        <welcome-file>HaCresume.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>

表示我的 首页 就是 /var/www/web/HaCresume/HaCresume.html 了。

然后重启Tomcat。访问 https://baimuxym.cn

现在就不会提示证书不安全了。完美!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/10/12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
给网站添加SSL安全证书
今天终于是给网站加了个证书,现在要通过https访问了。关于加证书的好处就不多说了,大大提升网站安全性,而且SEO排名也是有点用的。现在基本上都是https了,算是顺应潮流。
sunonzj
2022/06/21
6K0
给网站添加SSL安全证书
Tomcat配置http自动跳转至https
Jensen_97
2023/07/20
1.3K0
Tomcat配置http自动跳转至https
tomcat配置https
keystoreFile:证书路径(相对与tomcat主目录,例如:conf/SSL.jks)
AI粉嫩特工队
2019/09/10
2.2K0
https配置
SSL证书的部署类型又分为了单域名、多域名、通配符等类型,比如使用的是OV通配符证书,也就是一张证书可以保护 *.baidu.com 下的所有二级子域名
老梁
2019/09/10
2.7K0
https配置
Java项目实践,部署Tomcat应用http升级https
2013年的时候,自己建的一个网站,用来记录一些技术问题及学习内容,一直用的http,后来发现大部分网站都是https访问,感觉挺高级,本来以为https证书要收费就一直没关注这事,一次偶然机会,发现证书也有免费的,就申请了一个,简单几步就实现了。
用户1289394
2020/12/08
1.4K0
Java项目实践,部署Tomcat应用http升级https
jdk之keytool生成ssl证书,搭建tomcat+https协议
CMD进入JDK安装目录:cd c:/"Program Files"/java/jdk1.6.0_43/bin。输入命令:
有一只柴犬
2024/01/25
1K0
jdk之keytool生成ssl证书,搭建tomcat+https协议
【教你搭建服务器】部署项目 (三)
通过ftp把项目上传到服务器。上传到 /var/www/web/HaCresume
HaC
2020/11/05
1.3K0
tomcat 配置pfx证书
<Connector port=”80″ protocol=”HTTP/1.1″ connectionTimeout=”20000″ redirectPort=”443″ URIEncoding=”UTF-8″ />
全栈程序员站长
2022/08/22
1.5K0
如何免费将网站改成HTTPS访问
我们使用HTTP访问一个网站的时候,浏览器总是会提示“连接不安全“。最近在腾讯云注册申请了一个 hedianpipi.top(喝点啤啤) 的域名,通过域名解析绑定到了我腾讯云服务器上的应用中。当人默认是HTTP访问的,所以我就想要替换成HTTPS。
叫我阿柒啊
2025/01/23
8070
如何免费将网站改成HTTPS访问
Tomcat配置强制https端口变成8443的解决办法
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a1837634447/article/details/78270292
拓荒者
2019/03/16
3.8K0
证书安装指引之Tomcat 证书部署 原
如果申请证书时有填写私钥密码,下载可获得Tomcat文件夹,其中有密钥库 www.domain.com.jks; 如果没有填写私钥密码,证书下载包的Tomcat文件夹中包括密钥库文件www.domain.com.jks 与密钥库密码文件keystorePass.txt 当用户选择粘贴CSR时,不提供Tomcat证书文件的下载,需要用户手动转换格式生成,操作方法如下:
wuweixiang
2018/09/13
1.8K0
证书安装指引之Tomcat 证书部署
                                                                            原
Linux服务器上Tomcat配置SSL证书并自动续期
2.lets encrypt官网地址:https://letsencrypt.org
JaneYork
2023/10/11
7760
Linux服务器上Tomcat配置SSL证书并自动续期
如何在Tomcat中做TLS客户端认证
常见的https网站做的是服务端认证(server authentication),浏览器通过证书判断你所访问的https://baidu.com是否真的是百度,而不是其他人伪造的网站。同时还对流量加密,防止别人窃听你的流量。
颇忒脱
2019/04/19
3K0
如何在Tomcat中做TLS客户端认证
部署自己个人简历网站到服务器(超详细)(选购服务器、搭建环境、部署)
我们每天都在访问不同的网站,比如百度,那我们在浏览器输入 www.baidu.com 背后发生了什么,百度又是如何提供服务的呢。
HaC
2020/12/30
4.5K0
部署自己个人简历网站到服务器(超详细)(选购服务器、搭建环境、部署)
使用keytool自建证书及应用
2. 将生成的证书导出到文件 server.cer(或 client.cer,如果您愿意):
编程随笔
2019/09/11
1.3K0
网站HTTP升级HTTPS完全配置手册
今天,所有使用Google Chrome稳定版的用户迎来了v68正式版首个版本的发布,详细版本号为v68.0.3440.75,上一个正式版v67.0.3396.99发布于6月13日,自Chrome 68起,当在加载非HTTPS站点时,都会在地址栏上明确标记为“Not Secure(不安全)”。
葡萄城控件
2018/07/31
3K0
网站HTTP升级HTTPS完全配置手册
设置SSL后如何实现https自动跳转
IIS6.0路径:C:\WINDOWS\Help\iisHelp\common\403-4.htm
德顺
2019/11/13
2.3K0
https协议配置
前言:https协议配置,一般用于针对政府部门的终端有网络防火墙、网络过滤器等,使系统中的一些请求被拦截(劫持),原因一般为在请求头中有存在敏感信息,被网络过滤的监听器发现即拦截,可能会造成强退、强制刷新等现象;改为https协议后,请求里的通讯信息进行过加密处理,进而不会被拦截。
陈哈哈
2020/07/06
8840
https协议配置
Tomcat开启SSL 8443端口的方法
TOMCAT_HOME:/usr/local/tomcat7,安装方法参考:windows和linux 下将tomcat注册为服务
云知识Online
2018/05/03
4.5K0
Tomcat开启SSL 8443端口的方法
nginx+tomcat配置ssl实现https
仅为tomcat时,进入tomcat目录/conf/server.xml中,添加如下代码(具体参数请根据实际情况修改),并重启tomcat即可。若使用自定义的证书查看时使用ie为佳,chrome会直接屏蔽域名访问的链接(提示"此网站无法提供安全连接",以致纠结好长时间以为自己配置失败了呢= =),ip访问一般都会提示非安全链接,点击忽略继续就好。
WindCoder
2018/09/20
4.7K0
nginx+tomcat配置ssl实现https
相关推荐
给网站添加SSL安全证书
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档