운영환경
Linux : ubuntu 14.04
git version : 2.16.2
GitLab version : 10.4.4-ee
사내망에서 사용하는 부분이긴 하지만
보안을 조금이라도 강화하기위해 SSL설정을 해보자.
일단 SSL에 대해 공부해야하는데 GitLab을 설정하고 추후 SSL에 대해 공부를 좀 더 (아주많이) 해야겠다.
참고 ) SSL 인증서에 대한 좋은글이 있다. 참고하자
0. 공부 및 이력관리를 위해 서버에 대한 셋팅을 위해 다음과 같이 터미널을 열고 설정했다.
(병이라고 해야하나.. 뭐 습관이 무서운거니...^^.)
1. 개인키 발급(비밀번호 2회입력)
# openssl genrsa -out <키이름> <비트 수> // 암호없이 생성하는 경우
# openssl genrsa -<암호화알고리즘> -out <키이름> <비트수> // 대칭키 암호화 알고리즘 적용
2. CSR 생성
# openssl req -new -days 365 -key server.key -out server.csr
CSR을 생성할 때 서버의 식별명을 입력하게 됩니다. 식별명은 각 서버를 공유하게 나타내는 이름으로 다음과 같은 정보를 포함합니다.
Country Name ( 국가코드) [] : KR
State or Province Name ( 지역 ) [] : Seoul
Locality Name ( 시/군/구 ) [] : Seocho
Organization Name ( 회사명 ) [] : Hanbiro Inc
Organizational Unit Name ( 부서명 ) [] : Linux Team
Common Name ( 서비스도메인명 ) [] : www.hanbiro.com
Email Address [] : hanbiro@hanbiro.com
CSR 항목에 대한 설명
Country Name : 이것은 두 자로 된 ISO 형식의 국가 코드입니다.
State or Province Name : 시 이름을 입력해야 하며 약어를 사용할 수 없습니다.
Locality Name : 이 필드는 대부분의 경우 생략이 가능하며 업체가 위치한 곳를 나타냅니다.
Organization : 사업자 등록증에 있는 회사명과 일치되는 영문회사명을 입력하시면 됩니다.
Organization Unit : "리눅스 관리팀", "윈도우 관리팀" 등과 같이 업체의 부서를 입력할 수 있습니다.
Common Name : 인증받을 도메인주소를 입력하시면 됩니다.
이 정보로 웹 사이트를 식별하므로 호스트 이름을 변경할 경우 다른 디지털 ID를 요청해야 합니다.
호스트에 연결하는 클라이언트 브라우저가 디지털 ID의 이름과 URL이 일치하는지를 확인합니다.
☞ CSR 항목 입력시 주의사항
* Common Name 에는 인증서를 설치할 사이트의 도메인의 이름을 정확하게 입력하셔야 합니다. |
* Common Name 에는 IP 주소, 포트번호, 경로명, http:// 나 https:// 등은 포함할 수 없습니다. |
* CSR 항목에는 < > ~ ! @ # $ % ^ * / \ ( ) ? 등의 특수 68 문자를 넣을 수 없습니다. |
* CSR 생성후 서버에 개인키 (Private Key) 가 생성됩니다. 개인키를 삭제하거나 분실할 경우 인증서를 발급받아도 설치가 불가합니다. 따라서 꼭 개인키를 백업받아 두셔야 합니다. |
* 정보입력과정 마지막에 나오는 A challenge password 와 An optional company name 두 항목은 입력하지 마시고 Enter 만 누르고 넘어가야 합니다. 두 정보가 입력될 경우 잘못된 CSR 생성될 수 있습니다. |
3. 개인키 암호제거
가능하다면 키를 제거하는 게 편리하다.
# cp server.key server.key.org
# openssl rsa -in server.key.org -out server.key
4. 인증서 생성(server.crt)
# openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
5. gitlab.rb 수정
# sudo vi /etc/gitlab/gitlab.rb
external_url을 https://로 수정해준다.
6. 인증서 키파일 복사
이름을 변경해주고 (도메인이름으로 동일하게 맞춰 관리를 쉽게해줄 필요도 있어보인다)
인증서를 저장할 폴더 생성(/etc/gitlab/ssl)
# sudo mkdir -p /etc/gitlab/ssl
# sudo chmod 700 /etc/gitlab/ssl
파일을 경로(/etc/gitlab/ssl)폴더에 복사해준다.
# sudo cp 116.crt /etc/gitlab/ssl/
# sudo cp 116.key /etc/gitlab/ssl/
7. 방화벽 오픈 , 리다이렉트(80->443) 설정
# sudo ufw allow https
# sudo vi /etc/gitlab/gitlab.rb
8. GitLab 재시작
# sudo gitlab-ctl reconfigure
9. 접속완료
'Server Security > Gitlab' 카테고리의 다른 글
[GitLab#5] MARKDOWN을 이용한 README.md 작성하기(기초와 문법) (0) | 2018.11.09 |
---|---|
[error memo]fatal: pathspec 'folder/Iconr' did not match any files (0) | 2018.06.20 |
[GitLab#4] SMTP 설정 (0) | 2018.03.19 |
[GitLab#3] 백업하기 (0) | 2018.02.28 |
[GitLab#1] 설치하기 (0) | 2018.02.28 |