2017-05-24 12 views
2

내가 스캔 했으므로 glassfish에 letsencrypt.org SSL 인증서를 설치하는 방법에 대한 자세한 지침이없고 특히이 튜토리얼에서 glassfish를 사용할 것입니다. 4.1.2 빌드 1 많은 시행 착오 끝에 다음과 같은 안내를 할 수있었습니다. 그래서 내 질문에 답하고 대답하는 것이 좋기를 바랍니다.letsencrypt free ssl을 glassfish 4.x 서버에 설치하는 방법

이 튜토리얼에서는 필자의 Ubuntu 16.04 LTS 데스크탑에서 쉘 액세스 권한이있는 Ubuntu 16.04 LTS 서버를 사용합니다.

답변

0

visit certbot and follow the instructions below to setup your system

우분투 시스템에서

설치의 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, 언론 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 

단자가 출력 갱신을 만료되기 전에 자동으로 인증서를 갱신하는 cron 작업 함께 시스템에

Certbot 패키지를 자동화

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" 

. 90 일 동안 인증서를 암호화하자.이 기능을 활용하는 것이 좋습니다.

certbot renew --dry-run 

다음 스크립트가

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

이제 우리는을 가져 더 읽기

를 글래스 피시에 인증서 가져 오기 자동화 할 수 있도록 :이 명령을 실행하여 인증서 자동 갱신을 테스트 할 수 있습니다 인증서. 다음 스크립트를 확인하고 키 저장소 암호

에게 사용의 keytool 명령을 변경해야하는 경우 다음 프로세스를 자동화 명령으로

$ 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 

를 실행하는 yourscriptname.sh로 저장합니다. 작동하지 않으면 glassfish-install-dir/glassfish/domains/domain1/config 디렉토리에있는 경로에 cd이 있어야하고 해당 디렉토리에서 명령을 실행하십시오.
keytool -storepasswd -keystore /path/to/keystore 
Enter keystore password: changeit 
New keystore password: new-password 
Re-enter new keystore password: new-password 

성공적으로 인증서 표시를 가져오고 글래스 피쉬 서버를 다시 시작한 후, SSL 설치된 웹 응용 프로그램과 함께 작동하지만 asadmin tool 여전히 일을하지만 불행하게도 나는 브라우저에서 글래스 피쉬 관리 콘솔에 로그인 할 수 없습니다.

위의 우리이 (가)에 다음을 추가 recent trusted ca revisions from mozilla

에서 겉 모양 일 당 가장 최근 CA 파일 버전을 다운로드하기 위해 스크립트에 wget과 명령을 추가 할 필요가

을 변경 한 후 관리 콘솔에 로그인 할 수 없습니다 해결 sudo service glassfish stop 명령 바로 위의 yourname.sh 스크립트를 사용하여 문제를 해결하십시오.

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 

나는 누군가가이 모두에게 도움이되기를 바랍니다.

+0

이렇게하면 관리자 패널에서 계속 인증에 실패합니다. 나는 여전히 admin-password를 사용하여 admin 암호를 변경할 수 있으므로 localhost와 외부 컴퓨터를 통해 인증에 실패했음을 확신합니다. – Wietlol

+0

개발 한 로컬 네트워크 시스템을 배포하고 있습니다 (sprind mvc 및 jsp는 glassfish 4.1에서 실행됩니다.) 온라인으로 위성 사무실에서도 사용할 수 있습니다. 이미 포트 포워딩을 통해 고정 IP를 통해 배포했습니다. 의미, 나는 어떤 도메인도 가지고 있지 않으며 단지 쉘에 대한 액세스 권한이 없다. 내 서버가 Windows 및 glassfish에서만 실행 중입니다. 외부 접근이 더 안전 해지기를 바랍니다. 제공된 https 액세스를 시도했지만 보안되지 않은 회선에 대한 경고가 계속 표시됩니다. 그럼 어떻게 할 수 있습니까? 아니면 설정에 따라 할 수 있습니까? 나는 그것이 가능하다는 것을 안다. 그러나 나는 단지 어리 석다. 도와주세요. – amrodelas