CentOS에서 Apache HTTPS 서버를 구축하는 메모
소개
취미나 여러가지로 비슷한 것을 하는 데 매번 잊어 곤란하기 때문에, 자신용의 비망록으로서 Apache로 HTTPS 서버를 세우는 순서를 메모해 둔다. 이번에는 도메인 취득이 완료되었으며 SSL 인증서는 letsencrypt로 준비됩니다.
*이 기사에 쓰고 있는 일체의 작업은 Root 유저로 실시하고 있으므로, 적절히 sudo
나 su -
등으로 실행해 주세요.
환경
Apache 도입
우선 설치한다.
yum -y install httpd
자동 시작을 활성화하고 시작합니다.
systemctl enable httpd.service
systemctl start httpd.service
이제 자신의 도메인에 액세스하면 Apache에서 평소 화면이 보일 것입니다.
그런 다음 SSL 용 모듈도 설치합니다.
yum -y install mod_ssl
이 후 /etc/httpd/conf/httpd.conf
의 ServerName을 自分のドメイン名:80
로 다시 씁니다. 예를 들면 example.com:80
라든지.
/etc/httpd/conf/httpd.confServerName example.com:80
Certbot 소개
다음은 letsencrypt 인증서 발급 및 업데이트에 사용되는 Certbot 설치입니다.
yum -y install epel-release
yum install certbot
인증서 발급
초기 상태라면 /var/www/html
는 그대로, example.com
에는 자신의 도메인명을, [email protected]
는 자신의 메일 주소를 넣어 둔다.
certbot certonly --webroot \
-w /var/www/html \
-d example.com \
-m [email protected] \
--agree-tos -n
Congratulations! 라고 나오면 성공.
그런 다음 인증서를 반영합니다. /etc/httpd/conf.d/ssl.conf
의 이하 3 행을 재기록한다 (코멘트 아웃 되고 있는 것도 있다)
/etc/httpd/conf.d/ssl.confSSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem
일단 Apache를 재부팅 systemctl restart httpd
그러면 https://ドメイン名
로 액세스 할 수 있어야합니다.
덤
강제 SSL화
http로 액세스하면 https로 리디렉션합니다.
방법
/etc/httpd/conf/httpd.conf
의 마지막에 이것을 추기해 둔다.
/etc/httpd/conf/httpd.confewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Apache를 재시작 systemctl restart httpd
그러면 성공하면 http://...
로 액세스해도 https://
로 변경되어 브라우저의 키 마크가 나온다.
초기 페이지 지우기
앞서 보았던 이것
를 지워 둔다. 덧붙여서 같은 계층에 index.html
가 있으면 파일명의 지정이 없다.
방법
http://example.com/
아래의 모든 부분을 주석 처리합니다. 변경 후 Apache를 다시 시작하는 것을 잊지 마십시오.
/etc/httpd/conf.d/welcome.conf# <LocationMatch "^/+$">
# Options -Indexes
# ErrorDocument 403 /error/noindex.html
# </LocationMatch>
목록 표시 비활성화
아래 이미지와 같이 서버의 파일 목록을 볼 수 있으므로 무효화합니다.
방법
/etc/httpd/conf.d/welcome.conf
의 /etc/httpd/conf/httpd.conf
를 주석 처리합니다.
etc/httpd/conf/httpd.conf# Options Indexes FollowSymLinks
이쪽도 변경 후에 Apache의 재기동을.
인증서 자동 업데이트
여기 을 참고로 cron을 설정하였습니다. 아래의 예라면 매월 1일 오전 3시에 인증서를 갱신한다. 단, 기한이 30일 이내에 다가오지 않으면 실행되지 않으므로 주의.
방법
Options Indexes FollowSymLinks
에 적절한 이름의 파일을 만들어 다음을 작성하십시오. 이번은 /etc/cron.d/
라는 파일명의 예.
/etc/cron.d/letsencrypt00 03 01 * * root /bin/certbot renew --webroot-path /var/www/html/ --post-hook "systemctl reload httpd"
마지막으로
전혀 이해가 쫓기지 않기 때문에 시간이 있을 때 아파치에 대해 한 번 다시 배우고 싶다...
오자・수정등 있으면 연락해 주십시오.
Reference
이 문제에 관하여(CentOS에서 Apache HTTPS 서버를 구축하는 메모), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/lobmto/items/2933f0ea5f4bb6987b80
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
yum -y install httpd
systemctl enable httpd.service
systemctl start httpd.service
yum -y install mod_ssl
ServerName example.com:80
다음은 letsencrypt 인증서 발급 및 업데이트에 사용되는 Certbot 설치입니다.
yum -y install epel-release
yum install certbot
인증서 발급
초기 상태라면 /var/www/html
는 그대로, example.com
에는 자신의 도메인명을, [email protected]
는 자신의 메일 주소를 넣어 둔다.
certbot certonly --webroot \
-w /var/www/html \
-d example.com \
-m [email protected] \
--agree-tos -n
Congratulations! 라고 나오면 성공.
그런 다음 인증서를 반영합니다. /etc/httpd/conf.d/ssl.conf
의 이하 3 행을 재기록한다 (코멘트 아웃 되고 있는 것도 있다)
/etc/httpd/conf.d/ssl.confSSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem
일단 Apache를 재부팅 systemctl restart httpd
그러면 https://ドメイン名
로 액세스 할 수 있어야합니다.
덤
강제 SSL화
http로 액세스하면 https로 리디렉션합니다.
방법
/etc/httpd/conf/httpd.conf
의 마지막에 이것을 추기해 둔다.
/etc/httpd/conf/httpd.confewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Apache를 재시작 systemctl restart httpd
그러면 성공하면 http://...
로 액세스해도 https://
로 변경되어 브라우저의 키 마크가 나온다.
초기 페이지 지우기
앞서 보았던 이것
를 지워 둔다. 덧붙여서 같은 계층에 index.html
가 있으면 파일명의 지정이 없다.
방법
http://example.com/
아래의 모든 부분을 주석 처리합니다. 변경 후 Apache를 다시 시작하는 것을 잊지 마십시오.
/etc/httpd/conf.d/welcome.conf# <LocationMatch "^/+$">
# Options -Indexes
# ErrorDocument 403 /error/noindex.html
# </LocationMatch>
목록 표시 비활성화
아래 이미지와 같이 서버의 파일 목록을 볼 수 있으므로 무효화합니다.
방법
/etc/httpd/conf.d/welcome.conf
의 /etc/httpd/conf/httpd.conf
를 주석 처리합니다.
etc/httpd/conf/httpd.conf# Options Indexes FollowSymLinks
이쪽도 변경 후에 Apache의 재기동을.
인증서 자동 업데이트
여기 을 참고로 cron을 설정하였습니다. 아래의 예라면 매월 1일 오전 3시에 인증서를 갱신한다. 단, 기한이 30일 이내에 다가오지 않으면 실행되지 않으므로 주의.
방법
Options Indexes FollowSymLinks
에 적절한 이름의 파일을 만들어 다음을 작성하십시오. 이번은 /etc/cron.d/
라는 파일명의 예.
/etc/cron.d/letsencrypt00 03 01 * * root /bin/certbot renew --webroot-path /var/www/html/ --post-hook "systemctl reload httpd"
마지막으로
전혀 이해가 쫓기지 않기 때문에 시간이 있을 때 아파치에 대해 한 번 다시 배우고 싶다...
오자・수정등 있으면 연락해 주십시오.
Reference
이 문제에 관하여(CentOS에서 Apache HTTPS 서버를 구축하는 메모), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/lobmto/items/2933f0ea5f4bb6987b80
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
certbot certonly --webroot \
-w /var/www/html \
-d example.com \
-m [email protected] \
--agree-tos -n
SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem
강제 SSL화
http로 액세스하면 https로 리디렉션합니다.
방법
/etc/httpd/conf/httpd.conf
의 마지막에 이것을 추기해 둔다./etc/httpd/conf/httpd.conf
ewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Apache를 재시작
systemctl restart httpd
그러면 성공하면 http://...
로 액세스해도 https://
로 변경되어 브라우저의 키 마크가 나온다.초기 페이지 지우기
앞서 보았던 이것
를 지워 둔다. 덧붙여서 같은 계층에
index.html
가 있으면 파일명의 지정이 없다.방법
http://example.com/
아래의 모든 부분을 주석 처리합니다. 변경 후 Apache를 다시 시작하는 것을 잊지 마십시오./etc/httpd/conf.d/welcome.conf
# <LocationMatch "^/+$">
# Options -Indexes
# ErrorDocument 403 /error/noindex.html
# </LocationMatch>
목록 표시 비활성화
아래 이미지와 같이 서버의 파일 목록을 볼 수 있으므로 무효화합니다.
방법
/etc/httpd/conf.d/welcome.conf
의 /etc/httpd/conf/httpd.conf
를 주석 처리합니다.etc/httpd/conf/httpd.conf
# Options Indexes FollowSymLinks
이쪽도 변경 후에 Apache의 재기동을.
인증서 자동 업데이트
여기 을 참고로 cron을 설정하였습니다. 아래의 예라면 매월 1일 오전 3시에 인증서를 갱신한다. 단, 기한이 30일 이내에 다가오지 않으면 실행되지 않으므로 주의.
방법
Options Indexes FollowSymLinks
에 적절한 이름의 파일을 만들어 다음을 작성하십시오. 이번은 /etc/cron.d/
라는 파일명의 예./etc/cron.d/letsencrypt
00 03 01 * * root /bin/certbot renew --webroot-path /var/www/html/ --post-hook "systemctl reload httpd"
마지막으로
전혀 이해가 쫓기지 않기 때문에 시간이 있을 때 아파치에 대해 한 번 다시 배우고 싶다...
오자・수정등 있으면 연락해 주십시오.
Reference
이 문제에 관하여(CentOS에서 Apache HTTPS 서버를 구축하는 메모), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/lobmto/items/2933f0ea5f4bb6987b80
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(CentOS에서 Apache HTTPS 서버를 구축하는 메모), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/lobmto/items/2933f0ea5f4bb6987b80텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)