当前位置: 首页 > 知识库问答 >
问题:

如何将letsencrypt免费ssl安装到glassfish 4。x服务器

章睿
2023-03-14

我已经扫描了SO,发现没有关于如何在glassfish上安装letsencrypt.orgSSL证书的详细说明,特别是在本教程中,我将使用glassfish 4.1.2 build 1。经过大量的尝试和错误,我终于能够整理出以下指南。所以我希望可以问和回答我自己的问题。

在本教程中,我将使用Ubuntu16.04 LTS服务器,从我的Ubuntu16.04 LTS桌面访问Shell。

共有2个答案

都乐逸
2023-03-14

我创建了一个Perl脚本,以帮助在Glassfish和Payara中安装Let's Encrypt证书。我成功地使用它不仅在大约五分钟内为多个域安装了一个证书,而且还通过cron作业在证书即将过期时自动续订了这些证书。

我所做的是将获取Let’s Encrypt证书的过程分解为以下步骤,并非所有这些都是必需的:

  1. 自定义脚本到特定的本地安装1a。要为其创建证书的域列表1b。Glassfish/Payara设置(它们位于文件系统中的位置)1c。密码为Glassfish/Payara
  2. 更改Glassfish/Payara监听端口80和443
  3. 生成我们加密认证密钥
  4. 确保keystore密码与服务器的密码匹配
  5. 创建密钥库
  6. 将创建的密钥库导入Glassfish/Payara密钥库
  7. 将新证书应用到https监听器
  8. 更新域SSL信息
  9. 设置(如果需要)服务器管理员密码。
  10. 设置https域

此外,可以定期(通常通过“cron”)调用脚本,以检查是否需要更新任何域,如果需要,则自动更新它们。

见:https://github.com/hbrednek/letsencrypt_glassfish为了剧本。

何勇
2023-03-14

访问certbot并按照以下说明设置系统

安装

在Ubuntu系统上,Certbot团队维护一个PPA。一旦你把它添加到你的存储库列表中,你需要做的就是得到以下软件包。

$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt-get update
$ sudo apt-get install certbot 

开始吧

由于您的服务器体系结构尚不支持自动安装,因此您必须使用certonly命令来获取证书。

$ sudo certbot certonly
Saving debug log to /var/log/letsencrypt/letsencrypt.log

How would you like to authenticate with the ACME CA?
1: Place files in webroot directory (webroot)
2: Spin up a temporary webserver (standalone)
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 1

我们选择1中的第一个选项键,然后按回车键

Starting new HTTPS connection (1): acme-v01.api.letsencrypt.org
Please enter in your domain name(s) (comma and/or space separated)  (Enter 'c'
to cancel):yoursite.com www.yoursite.com
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for yoursite.com
http-01 challenge for www.yoursite.com
Select the webroot for yoursite.com:


1: Enter a new webroot
Press 1 [enter] to confirm the selection (press 'c' to cancel): 1
Input the webroot for yoursite.com: (Enter 'c' to cancel):/home/yourUsername/glassfish4/glassfish/domains/domain1/docroot

Select the webroot for www.yoursite.com:


1: Enter a new webroot
2: /home/yoursite/glassfish4/glassfish/domains/domain1/docroot


Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Waiting for verification...
Cleaning up challenges
Generating key (2048 bits): /etc/letsencrypt/keys/0000_key-certbot.pem
Creating CSR: /etc/letsencrypt/csr/0000_csr-certbot.pem
IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at
   /etc/letsencrypt/live/yoursite.com/fullchain.pem. Your cert will
   expire on 2017-08-21. To obtain a new or tweaked version of this
   certificate in the future, simply run certbot again. To
   non-interactively renew *all* of your certificates, run "certbot
   renew"

自动更新

系统上的Certbot软件包附带一个cron作业,该作业将在证书过期之前自动续订证书。由于让我们对证书进行加密可以持续90天,所以最好利用这一功能。通过运行以下命令,可以测试证书的自动续订:

certbot renew --dry-run

供进一步阅读

https://community.letsencrypt.org/t/importing-letsencrypt-into-java-and-glassfish/9711

现在我们导入证书。制作以下脚本并将其另存为yourscriptname。sh自动执行该过程,然后使用命令运行它

$ sh yourscriptname.sh

#!/bin/sh

DOMAIN=yoursite.com
#note that changeit is the default keystore password
KEYSTOREPW=changeit
GFDOMAIN=/home/yourUsername/glassfish4/glassfish/domains/domain1
LIVE=/etc/letsencrypt/live/$DOMAIN

mkdir etc
cd etc

sudo openssl pkcs12 -export -in $LIVE/cert.pem -inkey $LIVE/privkey.pem -out cert_and_key.p12 -name myalias -CAfile $LIVE/chain.pem -caname root -password pass:$KEYSTOREPW
sudo keytool -importkeystore -destkeystore keystore.jks -srckeystore cert_and_key.p12 -srcstoretype PKCS12 -alias myalias -srcstorepass $KEYSTOREPW -deststorepass $KEYSTOREPW -destkeypass $KEYSTOREPW
sudo keytool -import -noprompt -trustcacerts -alias root -file $LIVE/chain.pem -keystore keystore.jks -srcstorepass $KEYSTOREPW -deststorepass $KEYSTOREPW -destkeypass $KEYSTOREPW

sudo openssl pkcs12 -export -in $LIVE/fullchain.pem -inkey $LIVE/privkey.pem -out pkcs.p12 -name glassfish-instance -password pass:$KEYSTOREPW
sudo keytool -importkeystore -destkeystore keystore.jks -srckeystore pkcs.p12 -srcstoretype PKCS12 -alias glassfish-instance -srcstorepass $KEYSTOREPW -deststorepass $KEYSTOREPW -destkeypass $KEYSTOREPW
sudo openssl pkcs12 -export -in $LIVE/fullchain.pem -inkey $LIVE/privkey.pem -out pkcs.p12 -name s1as -password pass:$KEYSTOREPW
sudo keytool -importkeystore -destkeystore keystore.jks -srckeystore pkcs.p12 -srcstoretype PKCS12 -alias s1as -srcstorepass $KEYSTOREPW -deststorepass $KEYSTOREPW -destkeypass $KEYSTOREPW

sudo keytool -list -keystore keystore.jks -storepass $KEYSTOREPW

sudo cp -f keystore.jks $GFDOMAIN/config/

sudo service glassfish stop
sudo service glassfish start

cd ..
sudo rm -rf etc

使用keytool命令。如果它不起作用,您可能必须cd到它位于glassfish安装目录/glassfish/domains/domain1/config目录中的路径,并在该目录中运行该命令。

keytool -storepasswd -keystore /path/to/keystore
Enter keystore password:  changeit
New keystore password:  new-password
Re-enter new keystore password:  new-password

在成功导入证书并重启glassfish服务器后,SSL使用安装的Web应用程序,但不幸的是,我无法从浏览器登录到glassfish管理控制台,尽管asadmin工具仍然有效。

我们需要在脚本中添加wget命令,以便从mozilla最近的可信CA修订版中下载每个出现日期的最新CA文件修订版

将以下内容添加到yourname中。sh在命令sudo service glassfish stop上方编写脚本,以解决问题。

wget https://curl.haxx.se/ca/cacert-2017-01-18.pem --no-check-certificate -O cacert.pem

PEM_FILE=cacert.pem
KEYSTORE=cacerts.jks

CERTS=$(grep 'END CERTIFICATE' $PEM_FILE| wc -l)

for N in $(seq 0 $(($CERTS -1))); do
    ALIAS="${PEM_FILE%.*}-$N"
    cat $PEM_FILE | awk "n==$N { print }; /END CERTIFICATE/ { n++ }" |
    keytool -noprompt -import -trustcacerts \
            -alias $ALIAS -keystore $KEYSTORE -storepass $KEYSTOREPW
done
sudo keytool -list -keystore keystore.jks -storepass $KEYSTOREPW
sudo keytool -list -keystore cacerts.jks -storepass $KEYSTOREPW

if [ ! -f $GFDOMAIN/config/keystore-orig.jks ]; then
echo "Backing up original files..."
sudo cp -f $GFDOMAIN/config/keystore.jks $GFDOMAIN/config/keystore-orig.jks
sudo cp -f $GFDOMAIN/config/cacerts.jks $GFDOMAIN/config/cacerts-orig.jks
fi
echo "Updating certificates..."
sudo cp -f keystore.jks $GFDOMAIN/config/keystore.jks
sudo cp -f cacerts.jks $GFDOMAIN/config/cacerts.jks

cd ..

echo stop and restart glassfish domain to complete

cd ..
sudo rm -rf etc

我希望这有助于大家干杯!

 类似资料:
  • 我目前正在服务器上使用letsencrypt获取SSL证书。随着我的服务器上的站点数量不断增加,安装运行ssh命令的证书变得非常耗时:。我必须手动取消选中所有不希望安装SSL的域。 我的问题是:是否有某种快捷方式,例如运行以下操作:让mydomain.com为指定的域安装证书?我似乎在留档里找不到任何东西。 任何帮助将不胜感激。

  • 我使用Jetty9,所以下面是它在jetty-ssl.xml中的配置: 但是当我重新启动服务器时,它仍然显示为在浏览器上用https自签名的红色X标记 以下是密钥库: 根,2014年11月16日,受信证书条目,证书指纹(SHA1):51:51:B8:63:8A:4C:1F:15:54:56:Ed:37:C9:10:35:CA:D3:01:B9:36 中级,2014年11月16日,受信证书条目,证书

  • 问题内容: 运行hudson很容易,但是当前文档缺少在OS X上将运行中的hudson作为守护程序/服务安装的教程。 切换到生产环境时,需要确保已正确配置和保护它。 要求: 能够在端口80上运行 没有以root身份运行(或至少没有以root身份运行作业) 确保它在系统重新启动时正确启动/停止 启用直接从Web界面运行的自动升级。 最好的办法是安装一个可下载最新的hudson并进行安装的安装脚本。

  • 我从戈迪那里拿到了3份安全证书。 1.gdig2。中级证书 2.gd_束-g2-g1。根证书 3.731e59c245c09675。crt——颁发的证书 我创建了keystore使用keyool和共同构建所有三个以上证书像这样。 1.配置根证书 keytool-import-alias root-keystore/home/ec2 user/Temp/keystoreft-trustcacerts

  • 我正在试用neo4j2.0 for Windows的社区版测试版,但我看不到将其作为一项服务来安装的方法。启动Neo4j的唯一方法似乎是通过neo4j-community.exe,但这需要交互性才能按下开始按钮。在1.x版本中存在的批处理文件消失了。 有人有什么想法吗?

  • 我正在尝试使用Ubuntu和Tomcat7.0.52在AWS EC2实例上获得一个CA证书/SSL。浏览器无法连接。以下是我走过的步骤: 将csr提交给ssls.com/geoTrust,并接收返回:bundle.crt www.mydomain.net.crt 将证书导入密钥库: 接下来,更新$TOMCAT_HOME/config/server.xml: 然后重新启动Tomcat。 openss