Revision 59 as of 2022-04-13 06:55:51

Clear message
Locked History Actions




1. opensslを使用してSHA1で署名する場合(期限10年)

openssl genrsa -out test.key 2048
openssl req -new -key test.key -x509 -days 3652 -out test.crt -sha1


openssl x509 -text -noout -in test.crt

Let's Encrypt SSL証明書の作成と更新

EPELの certbot を使用する場合


1.certbotを epelからインストール (2021.5.28時点で CentOS7/SL7 および CentOS 8 に certbot がepelにある)

# yum install epel-release
# yum install certbot python-certbot-apache

2. httpdを停止して、初期の証明書ファイルを作成 (注:あらかじめ、SSL自己発行証明書でセキュリティ監査を受け、http/https は外部にopenしていること) -d の後に、証明したいホストのFQDNを記述する。

# systemctl stop httpd
# certbot certonly --standalone -d

その後、自分のEmailアドレスを入力(証明書の有効期限の19日前にメール通知がくる)、規約を読み承諾(A)gree する。後半の選択(share your email address with the Electronic Frontier Foundation)は、必要があれば承諾する(無理に承諾する必要はない)その後、以下のようにSSL証明書が作成されるので、これらを /etc/httpd/conf.d/ssl.conf 中で指定。

Starting new HTTPS connection (1):
Starting new HTTPS connection (1):
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for
Waiting for verification...
Cleaning up challenges

 - Congratulations! Your certificate and chain have been saved at:
   Your key file has been saved at:
   Your cert will expire on 2019-02-05. 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"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:
   Donating to EFF:          

必要な証明書のpath (下記のsymbolic linkの元を指定:証明書を更新するとlink先のファイル名が変わる)

# ls -l  /etc/letsencrypt/live/
total 4
-rw-r--r-- 1 root root 682 Nov  7 14:28 README
lrwxrwxrwx 1 root root  39 Nov  7 14:28 cert.pem -> ../../archive/
lrwxrwxrwx 1 root root  40 Nov  7 14:28 chain.pem -> ../../archive/
lrwxrwxrwx 1 root root  44 Nov  7 14:28 fullchain.pem -> ../../archive/
lrwxrwxrwx 1 root root  42 Nov  7 14:28 privkey.pem -> ../../archive/

3. conf.d/ssl.conf 中 以下の設定等

SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLHonorCipherOrder on
SSLCertificateFile      /etc/letsencrypt/live/
SSLCertificateChainFile /etc/letsencrypt/live/
SSLCertificateKeyFile   /etc/letsencrypt/live/

4.Apache httpd の追加 security設定、 httpd/http.conf中(DocumentRootの直前あたりで)

# Security
ServerTokens Prod
ServerSignature Off
TraceEnable Off
# httproxy
RequestHeader unset Proxy
Header unset X-Powered-By
# Click Jack
Header set X-XSS-Protection "1; mode=block"
Header set X-Content-Type-Options nosniff


更新を standalone で行いたい時は

certbot renew --pre-hook "systemctl stop httpd" --post-hook "systemctl start httpd"

を実行。(--pre-hook --post-hook は実際に更新が行われる時のみに実行される)

NB1:certbot renew実行時は http/https は外部に対して openしている必要がある. 上記は apache httpd で Document Root を標準の /var/www/html/ として使用している場合。

NB2: apache httpdが動いている時のcertbotでの更新はエラーでうまく実行できない時があるので注意。 更新は standalone で行うのが安全 (2019.3.25追記)


50 2  *  * 1  certbot renew --webroot-path /var/www/html/ --pre-hook "systemctl stop httpd" --post-hook "systemctl start httpd"

(2019.8.19動作再検証OK, @ribfml)