如何在没有 CSR 的情况下在 Tomcat 中安装 GoDaddy SSL 证书?

2023-12-03

我们的一位客户购买通配符 SSL 证书 (*.example.com) 来自 GoDaddy,他只是简单下载,没有提供 CSR 数据。该 zip 文件中有 3 个文件。那些是fce4f111a61ea3f4.crt, gd_bundle-g2-g1.crt and gdig2.crt.pem.

我搜索了很多与此相关的文章,但每个人都说首先从服务器获取 CSR 数据并将其传递到 GoDaddy 中以获取 SSL 证书。

就我而言,我们没有向 GoDaddy 提供 CSR 数据,这意味着我没有密钥库文件。

现在,我尝试在我的服务器上安装没有密钥库的证书。为此,我使用了以下命令但没有成功:

keytool -import -alias root -keystore tomcat.keystore -trustcacerts -file fce4f111a61ea3f4.crt

keytool -import -alias interm -keystore tomcat.keystore -trustcacerts -file gd_bundle-g2-g1.crt

keytool -import -alias tomcat -keystore tomcat.keystore -trustcacerts -file gdig2.crt.pem

我假设您已经按照上面的陈述维护了密钥库。首先备份您的密钥库以避免发生任何事故。

除了您拥有的文件之外,您还应该拥有私钥您生成的证书的。

现在按照命令执行步骤。

  1. 首先从密钥库文件中删除任何现有条目。
keytool -delete -alias tomcat -keystore domain.jks

您还可以通过以下方式查看任何其他现有条目 keytool -list -keystore domain.jks 也删除它们。

  1. 现在将证书和私钥导出到 PKCS12 文件中
openssl pkcs12 -export -in fce4f111a61ea3f4.crt -inkey private.key -out cert_and_key.p12 -name tomcat -CAfile gd_bundle-g2-g1.crt -caname root

如果您收到类似以下错误

unable to load private key
139995851216720:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:707:Expecting: ANY PRIVATE KEY

这意味着你的private.key格式不正确,您需要将编码更改为ASCII text运行以下命令来转换您的私钥

# You can do a dry run before manipulating the actual file
tail -c +4 private.key | file -

# Change encoding
tail -c +4 private.key > private.key
  1. 将 PKCS12 文件导入 JKS 密钥库:
keytool -importkeystore -srckeystore cert_and_key.p12 -srcstoretype PKCS12 -alias tomcat -keystore domain.jks
  1. 现在将根证书导入 JKS 密钥库(带有根别名)
keytool -import -trustcacerts -alias root -file $certdir/gd_bundle-g2-g1.crt -noprompt -keystore domain.jks
  1. 添加以下内容server.xml
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" maxThreads="150"
    SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS"
    keystoreFile="/path/to/keysore/domain.jks" keystorePass="xxxxxx"
    ciphers="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
    TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,
    TLS_ECDHE_RSA_WITH_RC4_128_SHA, TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,
    TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA, SSL_RSA_WITH_RC4_128_SHA" />

别忘了更换xxxxxx使用您的 JKS 密钥库密码和keystoreFile范围

  1. 完毕。现在重新启动您的Tomcat服务器并听你的日志文件
sudo service tomcat7 restart
sudo tail -f /var/log/tomcat7/catalina.out

Note:代替domain.jks与您的实际密钥库文件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在没有 CSR 的情况下在 Tomcat 中安装 GoDaddy SSL 证书? 的相关文章

随机推荐

  • String.Split 与字符串?

    我有一个可能非常简单的问题 我想做一个经典String Split 但是是字符串 而不是字符 喜欢string Split word 并返回一个数组 就像我所做的那样string Split x 您可以使用String Split stri
  • 验证器的 Spring 单元测试问题

    我正在尝试为我拥有的验证器类编写单元测试 因此 在我的 UniqueEmailValidator 类中 我注入了一个 Service 组件来检查它是否存在 AllArgsConstructor public class UniqueEmai
  • 对 c# .net 中的服务结果进行正确的空检查

    有贾里德 帕森斯的推文谁是 C 编译器开发人员 该推文声称我们应该使用 is object 作为非空检查 我的问题是为什么会这样 如果我从服务调用中得到结果 我应该运行 is object 检查而不是 null 吗 根据我的理解和我在微软文
  • 如何使用OpenSSL的SHA256函数

    我正在编写一个程序来熟悉 OpenSSL libncurses 和 UDP 网络 我决定使用 OpenSSL 的 SHA256 来熟悉行业加密标准 但我在使其正常工作时遇到了问题 我已将错误与 OpenSSL 与编译程序的链接隔离开来 我正
  • MySQL:使用 BEGIN&COMMIT 插入同一查询中的多个表

    我想使用 BEGIN 和 COMMIT 在同一查询中插入多个表 看来错误是在开始时发生的 这是我的 SQL 命令 BEGIN INSERT INTO Product pName pBrand pCategory pSize pQuantit
  • 如何获取字段类型和值?

    我目前正在尝试使用 mysql php 构建一个表单 下面是我到目前为止的代码的一部分 BLOCK 1 proceso mysqli fetch assoc result my query returns only one row
  • 默认模板类参数混淆了 g++?

    昨天 我遇到了 g 3 4 6 编译器问题 我使用 Intel 9 0 编译器编译的代码没有出现问题 下面的代码片段显示了发生的情况 template
  • 替代 tkinter.dooneevent

    我正在将一个程序 VMD 视觉分子动力学 移植到 Python 3 x 该程序是用 C 编写的 并且嵌入了 Python 和 TCL 解释器 其大部分 UI 是使用 TCL TK 框架和 OpenGL 进行硬编码的 因此 UI 刷新是手动完
  • 检查电子邮件地址在 iOS 上是否有效[重复]

    这个问题在这里已经有答案了 可能的重复 在 iOS 2 0 上的 Objective C 中验证电子邮件地址的最佳实践 我正在开发一个 iPhone 应用程序 我需要用户在登录时提供他的电子邮件地址 检查电子邮件地址是否有效的最佳方法是什么
  • 如何通过 SSH 连接到 colima 实例

    查找 SSH 所需的步骤colima 这太新了 文档有点匮乏 我需要复制卷并运行scp看起来很理想 最快的答案 colima ssh 使用快速回答ssh tmpconfig mktemp limactl show ssh format co
  • 旋转 UIButton

    我一直在尝试使用以下方法旋转按钮 IBAction rotate id sender CGPoint pencilCenter pencil center pencil setCenter pencilCenter CGFloat floa
  • Java/Mongodb 身份验证

    我看到很多教程展示了如何使用 Java 在 mongodb 中进行身份验证 我的 mongodb 配置为启用身份验证 在控制台中我使用 使用管理员 db auth myUser newPassword 并且运行良好 在java中 在访问的每
  • 按组的平均值划分数据列

    如果我有一个数据框 例如 group rep 1 4 each 10 data c seq 1 10 1 seq 5 50 5 seq 20 11 1 seq 0 3 3 0 3 DF data frame group data 现在 我想
  • 检测 PHP 变量不足:FALSE、NULL、unset()、empty()?

    定义 PHP 中不存在某个值或不足以满足应用程序需求的最佳方法是什么 var NULL var array var FALSE 最好的测试方法是什么 isset var empty var if var NULL if var 将变量初始化
  • System.in.read实际返回什么?

    什么是 System in read 返回 这文档 says 返回 数据的下一个字节 如果到达流末尾则为 1 49是字符的 ASCII 值1 它是第一个字节的值 The stream of bytes that is produced wh
  • 如何使用 Android 从 Firebase 数据库获取嵌套子项?

    我想从这种类型的 JSON 树中获取所有允许的子项的列表 databaseRef child Users child Allowded addValueEventListener new ValueEventListener Overrid
  • Django 测试:查看创建错误响应的回溯

    该模式来自 django 文档 class SimpleTest unittest TestCase def test details self client Client response client get customer deta
  • Swift - 委托协议结构

    请原谅我对 Swift 还很陌生 我想创建一个用于 POST 请求并从服务器获取响应的委托 然后将从服务器返回的参数传递给 func 并允许我的主类做出相应的响应 下面是我的代表和我的主要课程 它没有打印 LoginViewControll
  • 使用 GoogleCloudMessaging 替换 GCMBaseIntentService

    我是 Android 开发新手 我不得不将我的第一个项目从 Eclipse 切换到 Android Studio 发现库 GCMBaseIntentService 不再受支持 我找到了 GoogleCloudMessaging 但完全不知道
  • 如何在没有 CSR 的情况下在 Tomcat 中安装 GoDaddy SSL 证书?

    我们的一位客户购买通配符 SSL 证书 example com 来自 GoDaddy 他只是简单下载 没有提供 CSR 数据 该 zip 文件中有 3 个文件 那些是fce4f111a61ea3f4 crt gd bundle g2 g1