
[잡설]
기존에는 redmine을 시놀로지 DSM 6 버전에서 패키지 설치하여 사용하다
DSM 7 버전으로 올라가면서 redmine 패키지가 사라지면서 사용을 중단 하였다.
그러다 다시 필요해져서 시놀로지 도커에 올려서 쓸까 하다가 linux 에 설치하는걸로 결정했다.
아직도 도커 보다는 시스템에 설치하는걸 더 선호하는 편이다.
목표는 작은 pc 하나 구해서 rocky linux 9 설치하고 redmine + gitea 설치하는게 목표다.
근데 redmine 설치하는게..... 생각보다 잘 안되네....
제작년에 설치해보고 문서로 정리해놓은것도 있는데 버전업 되면서 달라진것도 많고
생각보다 참고할 문서가 별로 없다. redmine 이 일반적으로 필요한 프로그램도 아니긴 하지만...
간단히 설치하려고 bitnami 를 알아봤지만 redmine 4버전대에서 멈추가 더이상 업데이트가 없는것 같다.
뭐 물론 redmine 4 버전대로도 충분히 쓰고도 남지만...이런건... 쓰기 싫어진다 ㅋㅋ
여튼 이번에 설치했어도 나중에 또 설치해야할일 생길거고
나의 치매급 망각능력을 알기에 이곳에 과정을 남긴다.
[시작하기전 확인]
OS : rocky linux 9.4
redmine 버전 : 5.1.4
DB : mariadb 11.4.3
web server : nginx 1.26.1
web서버로 작년 정도까지만 해도 주로 Apache httpd 를 사용했었다. 그냥 예전부터 쓰던거라 익숙하다보니~
그러다 올해부터는 주로 nginx를 사용하고 있어서 지금 구축 시스템에서도 nginx를 사용할 예정이다.
근데.. 설치하면서 제일 삽질이 많았던 부분인데...
apache냐 nginx냐의 문제는 아니겠지만... 최초 계획은 nginx가 시스템에 설치 되어있는 상태에서 redmine을 설치한다는
것이었다. 왜냐면 이미 구축되어있는 시스템에 redmine을 추가할수도 있다는 일어날지 안일어날지도 모르는 가정에~ㅋㅋ
근데 아래 글을 진행하다 보면 알겠지만 nginx 와 passenger 라는걸 연동할때 nginx source 경로 install 경로를 묻는데
기존 설치 되어있는 것과 별개로 source로 재컴파일을 해서 기존 설치에 반영이 되야 겠지만 이게 잘 안된다.
경로도 무지 헷갈리고 덮어 쓰려면 디렉토리나 파일 구조도 동일해서 필요한것만 덮어쓰던지 해야하는데 구조 자체가 달라서 여러 파일이나 디렉토리가 비슷한게 더 생기고... 여튼 그래~
그래서 이 설치할때는 mariadb까지만 사전 설치하고 nginx 는 redmine 설치시 컴파일 설치하는걸로 선택 하는게 좋을듯.
양심은 있는지 nginx 컴파일은 지가 알아서 하더라~^^
또하나 이건 지금에만 해당하겠지만 오늘 들어가서 보니 redmine 버전이 6 이 새로 나온거 같더라
그래서 6버전으로 설치를 해보려고 했는데 ruby 버전이 호환이 안된데... 그래서 ruby 버전을 최신으로 업데이트 하려했는데.... 이것도 실패했어... 하라는대로 했는데 안되네... 그래서 이글에선 5.1.4 버전 기준으로 설명함
rocky linux 9.5 나오거나 ruby 버전이 업데이트 되면 시도해 볼거임.
설치하면서 ChatGPT를 많이 활용하긴 했지만~ 역시 믿을건 못되더군... 참고 정도만~
[시작 준비]
패키지 설치~
우선 EPEL 저장소 부터 추가
[root@ROCKYLINUX94 opt]# dnf install epel-release
설치 과정에 필요한 패키지들을 설치한다.
[root@ROCKYLINUX94 opt]# dnf install wget redhat-rpm-config automake libcurl-devel gcc g++ cpp gcc-c++ make libtool ImageMagick ImageMagick-devel MariaDB-devel ruby ruby-devel rubygems nodejs openssl-devel readline-devel zlib-devel curl-devel git libffi-devel libxml2-devel libxslt-devel pcre-devel valgrind-devel ghostscript
Install 299 Packages 쯤 뜨네 ^^;;
설치 패키지 이유는 다 모르지만 make 나 gcc g++ cpp 등은 nginx 컴파일에 필요한것들 같고
설치 자체에는 문제 없지만 redmine 에서 지원기능에 대한 패키지들도 있다.
예를 들면 ghostscript 같은 경우는 pdf 지원과 관련이 있다.
redmine 설치 파일을 다운 받는다.(redmine 설치 경로가 /opt/redmine 으로 할거라 opt 경로에서 다운받음)
[root@ROCKYLINUX94 opt]# wget https://www.redmine.org/releases/redmine-5.1.4.tar.gz
압축 해제
[root@ROCKYLINUX94 opt]# tar xvfz redmine-5.1.4.tar.gz
폴더명 리네임
[root@ROCKYLINUX94 opt]# mv redmine-5.1.4 /opt/redmine
MariaDB 의 준비~
DB에 redmine 을 위한 데이터베이스와 계정을 생성한다. (database 이름은 redmine)
mysql에 접속 하여 아래 쿼리 실행
use mysql;
CREATE DATABASE redmine CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'redmine'@'localhost' IDENTIFIED BY '너희들의 패스워드';
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';
FLUSH PRIVILEGES;
EXIT;

redmine 의 DB 설정
redmine 경로로 이동한다.
[root@ROCKYLINUX94 opt]# cd /opt/redmine
database.yml 샘플을 복사해서 database.yml 로 copy 한다.
[root@ROCKYLINUX94 redmine]# cp config/database.yml.example config/database.yml
database.yml 에 DB 정보를 수정한다.
[root@ROCKYLINUX94 redmine]# vi config/database.yml

username 하고 password 만 바꾸면 된다.
나는 username 도 redmine 로 했지만 다른이름 으로 해도 되고 위의 mariadb 에서 계정 추가한 이름을 넣어주면 된다.
기타 설정
redmine 설정을 위한 것들인데 configuration.yml 은 설치 이후에도 수정할수 있다
내용 열어서 보다보면 대충 어떤 것들인지 알게 될것이다.
여기서는 두가지 정도 할건데 하나는 pdf 지원을 위한것과 또하나는 이메일 설정이다.
[root@ROCKYLINUX94 redmine]# cp config/configuration.yml.example config/configuration.yml
1) pdf 지원
처음 패키지 설치때 ghostscript를 설치했으니 아래 명령을 치면 아래 이미지 같이 PDF 가 rw 가 지원되어야 한다.
[root@ROCKYLINUX94 redmine]# convert -list format | grep PDF

configuration.yml 파일을 열고 182 line 정도에 imagemagick: /usr/bin/convert 를 추가해준다.
[root@ROCKYLINUX94 redmine]# vi /opt/redmine/config/configuration.yml

이걸 해야지 아래 PDF 서포트 이용가능이 연두색 체크 표시가 뜬다.
참고로 저 맨 아래 queue adapter 변경은 여러가지로 다해봤는데 아직 클리어하지 못했다 ㅜㅜ
뭐 기능에는 큰 영향이 없지만... 찝찝...(이메일 발송등 처리 시 비동기 queue 방식으로 변경하라는)

2) redmine 에서 메일 발송을 위한 설정
위의 설정과 같이 configuration.yml 파일을 열고
[root@ROCKYLINUX94 redmine]# vi /opt/redmine/config/configuration.yml
처음 default 구역 말고 최 하단에 production: 영역에 아래와 같이 이메일 발송에 쓸 정보를 추가한다.
나는 gmail 로 사용할것 이기때문에 gmail 기준으로 설정했다.

위에 주석처리된 queue_adapter 가 위에 빨간 느낌표 해결을 하기위한 설정의 흔적들이다 ㅋㅋ
[Redmind 설치 시작]
1) 권한 생성
이전 설치 과정에서 권한에 대한 문제가 좀 생기더라 여러가지 방법을 해보다 걍 nginx 계정을 생성해서 사용했다.
[root@ROCKYLINUX94 redmine]# groupadd nginx
[root@ROCKYLINUX94 redmine]# useradd -r -g nginx -s /sbin/nologin -M nginx
이후 작업들은 redmine 디렉토리에서 실행해야 하므로 redmine 경로로 이동(난 이미 redmine 경로에 있지만~)
[root@ROCKYLINUX94 redmine]# cd /opt/redmine
2) passenger 설치
[root@ROCKYLINUX94 redmine]# gem install passenger

[root@ROCKYLINUX94 redmine]# gem install bundler
[root@ROCKYLINUX94 redmine]# bundle install --without development test
3) DB 마이그레이션
[root@ROCKYLINUX94 redmine]# RAILS_ENV=production bundle exec rake generate_secret_token
[root@ROCKYLINUX94 redmine]# RAILS_ENV=production bundle exec rake db:migrate
그러면 뭔가 죽~~~ 올라간다.
[root@ROCKYLINUX94 redmine]# RAILS_ENV=production bundle exec rake redmine:load_default_data
이 명령을 실행하면 아래와 같이 언어를 묻는데 ko 를 선택한다.

4) nginx 에 passenger-install-nginx-module 모듈 추가
(nginx 소스를 다운로드 받아 passenger 모듈을 추가해서 컴파일 한다.)
[root@ROCKYLINUX94 redmine]# passenger-install-nginx-module

그냥 엔터를 친다.

위의 화면이 나오면 !를 입력하면 아래 내용을 선택할수 있게 바뀐다.

키보드 화살표를 이용해서 이동할수 있고 스페이스바를 누르면 선택/해제 가 된다.
나는 Ruby 만 필요하므로 Ruby만 선택했다.

그리고 엔터를 누르면 주르륵 체크를 한다.

체크하는 과정에 위의 메시지가 뜨면
dnf install libcurl-devel 패키지를 설치한다.

또 위와 같은 error 가 발생하면
dnf install openssl-devel zlib-devel 두개 패키지를 설치한다.
모두 정상적으로 체크되고나면 아래 선택 화면이 출력된다.

여기서는 1을 선택한다. 쉽게 말해
1 은 nginx를 다운로드 해서 컴파일 해서 설치하는거고
2 는 기존 nginx 가 설치 되어있는상태에서 passenger를 추가한다는건데, 내가 이거하다가
시간을 엄청 허비 했다. 생각처럼 깔끔하게 안되니 포기하고 1로 간다.

그럼 뭐가 죽~~ 올라가다 설치 경로를 묻는데 나는 기본값으로 그냥 할거다. 그냥 엔터
나머지는 지가 알아서 컴파일 한다. 시스템 사양에 따라 좀 다르겠지만 난 몇십분 걸리더라~
컴파일이 다 끝나고 나면 아래와 같이 끝납니다. 엔터~

opt/nginx/conf/nginx.conf 열어보면 위에 설명한 passenger_root, passenger_ruby 부분이 추가 되어있습니다.
4) 권한 설정
[root@ROCKYLINUX94 redmine]# chown -R nginx:nginx /opt/redmine
[root@ROCKYLINUX94 redmine]# chmod -R 755 /opt/redmine
[root@ROCKYLINUX94 redmine]# chown -R nginx:nginx /opt/nginx
[root@ROCKYLINUX94 redmine]# chmod -R 755 /opt/nginx
권한 관련되어서는 각자 상황에 맞춰 설정하면 되는데 권한 설정에 참고로
Redmine의 tmp, files, log 디렉토리는 웹 서버가 쓰기 권한을 가져야 한다.
5) nginx.conf
[root@ROCKYLINUX94 redmine]# vi /opt/nginx/conf/nginx.conf
기본 nginx.comf 파일에 내가 추가/변경한 내용은 아래와 같다.
user nginx; # 이부분도 설치후 권한 오류와 관계있음
worker_processes 2; #설치 시스템 코어갯수만큼 수정
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
passenger_root /usr/local/share/gems/gems/passenger-6.0.23;
passenger_ruby /usr/bin/ruby;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 80;
server_name localhost;
root /opt/redmine/public;
passenger_enabled on;
#charset koi8-r;
location / {
try_files $uri @app;
}
location @app {
passenger_base_uri /;
passenger_app_root /opt/redmine;
}
error_log /opt/nginx/logs/error.log;
access_log /opt/nginx/logs/access.log;
}
# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;
# location / {
# root html;
# index index.html index.htm;
# }
#}
# HTTPS server
#
#server {
# listen 443 ssl;
# server_name localhost;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
#}
}
6) nginx 자동 실행
[root@ROCKYLINUX94 redmine]# vi /etc/systemd/system/nginx.service
[Unit]
Description=NGINX web server
Documentation=http://nginx.org/en/docs/
After=network.target
[Service]
Type=forking
PIDFile=/opt/nginx/logs/nginx.pid
ExecStartPre=/opt/nginx/sbin/nginx -t
ExecStart=/opt/nginx/sbin/nginx
ExecReload=/opt/nginx/sbin/nginx -s reload
ExecStop=/opt/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
[root@ROCKYLINUX94 redmine]# systemctl daemon-reload
[root@ROCKYLINUX94 redmine]# systemctl enable nginx
[root@ROCKYLINUX94 redmine]# systemctl start nginx
그리고 브라우저에서 ip주소 입력하면 아래와 같은 화면을 볼수 있다~!!

예전부터 느끼고 누구나 느끼겠지만.... 디자인좀....^^;;
초기 로그인 계정은 admin/admin
이게 끝은 아니다 redmine 을 사용하려면 꼭 해야한 하는 세세한 설정들이 정말 많다.
일감유형, 일감상태값, 역할값 등등 결함,이슈,프로젝트 관리하기 위한 시나리오들을 잡고
하나하나 설정해가야한다.
예전에 설치할때도 어떻게 시나리오를 만들어갈까 일주일 이상 고민했던것 같다.
이후에 Let’s Encrypt 를 통해 ssl 인증서를 적용하고자 한다.
그건 다음주에 해야겠다~~ ㅎ
출처: https://joonius.tistory.com/m/43
[linux][redmine] rocky linux 9에 redmine 수동 설치하기
[잡설]기존에는 redmine을 시놀로지 DSM 6 버전에서 패키지 설치하여 사용하다DSM 7 버전으로 올라가면서 redmine 패키지가 사라지면서 사용을 중단 하였다.그러다 다시 필요해져서 시놀로지 도커에
t.oii.kr
Let’s Encrypt SSL 무료 인증서 설치
0. 상황
수년동안 손댓다 말았다 하며 만들고있는 소개팅서비스가 있다. 선연(sunyeon.com) 이라고
하지만 앱버전이 없기때문에 아직 정식 서비스라고 할수는 없다.
작년인가는 cafe24에서 인증서를 구매해서 적용했지만, 정식 서비스도 아니고 좀 아까웠다.
얼마 안되는 금액이지만 선연 서비스 외에도 회사 홈페이지나 간단한 웹을 만들때 종종 쓸거 같아
맘먹고 무료인증서 설치를 추진해봤다.
근데 자료가 많으면서도 전체적으로 필요한 내용을 개별적으로 찾아야 해서 정리해본다.
사실 3개월전에 적용을 했었으나 그때 정리 못해서 다시 갱신 발급하려니 다 까먹어서 이번에도 힘들었다.
1. 무료인증서 선정
많은 무료인증서 서비스가 있지만 그중에서 Let’s Encrypt 로 선정
2. Let’s Encrypt
Let’s Encrypt 는 비영리재단으로 HTTPS 확산이 유료 서비스에 있다고 보고 여러 글로벌 업체의 후원을 받으며 HTTPS 확산을 위해 무료 SSL인정서 서비스를 진행
단점으로는 90일에 한번씩 재발급을 해야하는데 이는 보안환경 변화를 반영하기 위한 것. 이 단점은 자동갱신 설정으로 해결(?)된다.
3. 고민
Let’s Encrypt 를 설치하면서 몇가지 고민을 해야하는 부분들이 있다.
그중 가장 고민 되었던게 설치 방법이다.
우선 설치 방법(도메인 소유자인증)에는 4가지가 있단다. 하지만 실제 설치 시에 선택 가능 내용을 보면 3가지이다.
이 방법중 선택하는 기준의 중요한 부분은, 서버재실행이 필요하냐? 와 단일도메인이냐 여러도메인을 쓸거냐?
인듯 하다.
- 웹서버
- 웹서버(Apache, Nginx) 의 설정을 이용하는것 같다.(잘 모름)
- 웹서버 일시 중단 불필요.
- 뭔가 자동으로 되는것들이 많은것 같으나 난 잘 모르겠음
- 여러 도메인 인증이 가능한듯(?) 이부분 설명을 못본듯 함 - webroot
- 웹 디렉토리 내에 인증서 유효성을 확인 파일을 업로드하여 인증서를 발급하는 방법
- 웹서버 일시 중단 불필요
- 하나의 도메인 인증서만 발급 가능
- Standalone
- 가장 안정적(?)이라고 함
- 80포트로 가상 웹서버 띄워 인증서발급을 하기 때문에 기존 웹서버를 발급 받는동안 중단해야함.
- 동시에 여러 도메인을 발급 받을 수 있음 - DNS
- TXT 레코드로 사이트 유효성을 확인
- 와일드 카드 방식으로 인증서를 발급 가능
- 자동 인증서 갱신에 DNS 서버의 추가기능이 필요한듯
일단 DNS 방법은 갱신이 좀 복잡해 보여서 제외.
Standalone은 웹서버를 잠시 중단시키고 갱신해야해서 제외.
webroot는 하나의 도메인 인증서만 가능하다는 부분때문에 제외, 직접확인안해봐서 모르겟지만 보통 도메인 사용시
aaa.com 하고 www.aaa.com 하고 두개를 사용해야하기때문에... webroot 방시의 하나의 도메인이라는게 www를 포함하는지 모르겠음.
그래서 웹서버 방식을 이용하고 싶었다.... 싶었다...
하지만 Apache 웹서버 방식으로 설치를 하려하다보니 webroot 와 비슷한 문제이기도 하지만~
프레임워크를 이용해 개발된 웹인경우 웹루트 경로가 좀 애매하다.
시도해보긴 했지만 설치하는 과정에 aaa.com.well-known 이라는 디렉토리 아래 인증파일을 위치해서 발급받아야 하는데... 경로가 안맞아서 자꾸 실패한다. 어떻게든 맞춰볼수도 있을거 같은데 그렇게 하면 사이트마다 적용하기에 왠지 복잡해질것 같아 이방법도 포기 하고 몇시간 동안 방황했다...
웹서버 방식과 webroot 방식은 정말 시간 많이 생길때 해보기로 하고
다시 구글링으로 조사해보다 Standalone로 진행하기로 했다.
그 이유는... Standalone 으로 진행할때 가장 걸리던게 웹서버를 중단시키고 갱신시켜야 하고 그러다 보니 자동갱신이 안된다는 것이였는데, 찾아보니 clonetab 과 스크립트로 자동갱신이 가능하다고 함.(몇십초의 서비스 중단은 어쩔수없지만)
그래서 Standalone 방식으로 진행하기로 함.
실행환경은
Centos8 linux 에 Apache 웹서버, Tomcat9
linux 에 443 포트 방화벽 오픈은 되어있어야 한다.
이미 httpd 와 tomcat은 연동이 되어있고 www.sunyeon.com은 정상적으로 웹서비스가 올라가 있는 상태이다.

Let’s Encrypt 인증서 설치는 Cerbot 라는 커맨드라인 도구를 사용하기 때문에 우선 EPEL 저장소를 활성화 하기 위해 아래 명령어로 설치한다.
1. Cerbot 설치
CentOS의 경우 EPEL 저장소인 epel-release 를 활성 시켜준다.
shall]$ dnf install epel-release
cerbot 을 설치한다.
shall]$ dnf install certbot
shall]$ dnf install python3-certbot-apache
2. 인증서 발급
설치가 끝나면 아래 명령을 입력하면 바로 인증서 발급을 진행하면 된다.
아래 명령 중에 "certonly"이 없으면 자동으로 여러가지를 하는 경우가 있단다. 서버 관리차원에서 원치않는 변경이 없게
certonly 옵션으로 순수 인증서만 발급한단다.
shall]$ certbot -d sunyeon.com -d www.sunyeon.com certonly
(주의 : 위 명령은 httpd를 반드시 stop 시키고 해야한다.)

1.웹서버 2.standalone 3.webroot 이중에 2번 standalone 를 선택하고 이메일주소 입력하고 내용보면서 선택하고 넘어가면 된다.
(위의 사진에는 없지만 명령실행시 붉은 error 표시가 뜨는 부분은 무시해도 된다.)
3. 인증서 설정
인증서가 정상적으로 발급이 되면 /etc/letsencrypt/live/sunyeon.com(도메인이름) 경로에 아래와 같이 인증서가 생성이 된다.

그리고 /etc/httpd/conf.d 디렉토리 아래에 ssl.conf 라는 파일이 생긴다.

ssl.conf 파일 하단에 내용추가.

위 내용중에 SSLCertificateChinFile 은 chain.pem 을 쓰는 문서도 있고 fullchain.pem 을 쓰는 문서도 있는데..
fullchain.pem 은 cert.pem + chain.pem 이라는데, 내가 해본 경우로는 둘다 되더라.
여기까지 ssl 인증서 발행과 설정은 끝났다.
나도 가금 잊어먹고 삽질 하는부분인데 접속 테스트 할때 꼭 공유기에서 SSL 포트 (443) 을 포트포워딩으로 열여주자.
이후 남은 작업은 두가지 인듯 하다.
1. 자동 갱신 실행 등록
2. http로 들어오는 요청을 https로 리다이렉트.
1. 자동갱신
적당한 곳에 letsencrypt.sh 파일을 생성한다.
나는 /etc/letsencrypt/letsencrypt.sh 로 생성했다.
내용은
--------------------------------------
#!/bin/sh
systemctl stop httpd
sleep 7
certbot renew
sleep 7
systemctl start httpd
----------------------------------------
라고 입력한다.
위의 내용을 보면 알겠지만 갱신하는 명령은 cerbot renew 이고, 갱신하기전에 httpd 를 stop 시키고
갱신 후에 다시 httpd를 start 시킨다.
그리고 위의 파일을 crontab 에 등록 시킨다.
shall]$ crontab -e
아래 내용을 추가한다.
00 05 */80 * * /etc/letsencrypt/letsencrypt.sh
(80일 마다 새벽 5시에 letsencrypt.sh 스크립트 실행 하라는 내용. 이건 잘 되는지 아직 확인 못함)
2. http -> https 로 리다이렉트
이부분에 시간을 좀 많이 허비했다. 왜냐면 이런걸 해야하는줄 몰랐기때문에~ ;;
이걸 안하면 어떤 현상이 있냐면~~
브라우져에 따라 조금씩 다를 수는 있는데
브라우져에서 https://sunyeon.com 도 되지만 http://sunyeon.com 도 된다는거다.
프로토콜 상관없이 브라우져에 sunyeon.com 이라고 입력했을때
브라우져가 알아서 https로 접속하면 다행이지만 http://sunyeon.com 으로 접속할수도 있고
그런경우에는 브라우져 주소창에 "안전하지 않은 사이트" 가 뜨는거다.
이럴거면 ssl을 적용한 의미가 없는거지~
그래서 브라우져가 또는 일부러 http로 접속을 하려고 하더라도 https로 리다이렉트 시키는거다.
/etc/httpd/conf.d/virtualhost.conf 에 아래 내용을 추가한다.
shall]$ vi virtualhost.conf
<VirtualHost *:80>
ServerName sunyeon.com
ServerAlias www.sunyeon.com
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R,L]
</VirtualHost>
이 작업을 마치면 항상 https 로 잘 접속이 된다.
인증서 남은 기간 확인
shall]$ certbot certificates
인증서 삭제
인증서를 재발행하건 할때 아래 명령으로 인증서를 삭제해야한다.
아래 명령이 아니고 그냥 서버내 인증서 파일 삭제하고 다시 인증서 발행을 하게 되면
이미 도메인으로 발행된 인증서가 Let’s Encrypt 에 등록 되어있기 때문에
도메인 이름 뒤에 0001 이런식의 추가적 이름이 붙어서 발행된다.
shall]$ certbot revoke --cert-path /etc/letsencrypt/archive/sunyeon.com/cert1.pem
도메인 추가
기존 인증서가 있는 상태에서 도메인을 추가할때 아래 명령 처럼 -d 뒤에 도메인을 쭉~ 붙이면 된다.
(아직 나도 안해본 명령)
shall]$ certbot certonly --cert-name sunyeon.com -d sunyeon.com -d www.sunyeon.com -d........
우선 설치해본 후에 기억을 더듬고 확인해서 작성한 글이라
혹시 빠진 부분이 있거나 잘못 적은 내용이 있을수도 있겠으나
나도 다시 인증서 설치할때 보면서 해야하기 때문에 오류가 있으면 그때그때 수정하겠음.
'컴퓨터 활용(한글, 오피스 등) > 기타' 카테고리의 다른 글
| Redmine 설치법 (0) | 2026.01.09 |
|---|---|
| 품질검증 분야 공개SW 솔루션 목록(2012.12.24) (0) | 2026.01.09 |
| RedMine(레드마인)과 Trac(트랙) 간단한 비교 (0) | 2026.01.09 |
| 웹취약점 점검 (0) | 2026.01.08 |
| NAS(Network Attached Storage) 보안 가이드 (0) | 2026.01.08 |