일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- miniconda
- Ai
- 라라벨
- 블록체인
- pagination
- nodejs
- 오블완
- nft
- Kaikas
- Setting
- threejs
- metamask
- nginx
- CSS
- node
- 회고
- 배포
- netfunnel
- exceljs
- polygon
- Remix
- chatGPT
- Laravel
- jquery
- 티스토리챌린지
- React
- 공연티켓
- Python
- PM2
- NextJS
- Today
- Total
박주니 개발 정리
centOS 환경에서 SHA-1 cipher suites were detected 이슈 해결하는 방법 본문
설명전)
먼저 centOS환경에 적용하기 전에 local 환경에 적용해보시길 바랍니다.
centOS환경에서 openssl이 기본적으로 설치되어있기 때문에 wsl에서 진행했던 방법과 조금은 다르게 진행될 수 있으니 참고부탁드립니다.
1. 패키지 목록을 업데이트합니다.
sudo yum update -y
2. nginx를 설치합니다.
sudo yum install nginx -y
3. ssl private 디렉토리와 ssl certs 디렉토리를 생성합니다.
sudo mkdir -p /etc/ssl/private /etc/ssl/certs
4. 생성한 디렉토리는 보안상의 이유로 권한을 설정합니다.
sudo chmod 700 /etc/ssl/private
sudo chmod 755 /etc/ssl/certs
5. openssl 명령어를 다시 실행하여 인증서와 키를 생성합니다.
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/nginx-selfsigned.key -out /etc/ssl/certs/nginx-selfsigned.crt
추가 설명
- 여러 설정을 묻는 프롬프트가 나타납니다. Country Name, State or Province Name, Organization Name 등을 입력합니다. 이 정보는 인증서에 포함됩니다.
Country Name (2 letter code) [AU]: KR
State or Province Name (full name) [Some-State]: Gyeonggi-do
Locality Name (eg, city) []: Seongnam-si
Organization Name (eg, company) [Internet Widgits Pty Ltd]: Test
Organizational Unit Name (eg, section) []: IT Department
Common Name (e.g. server FQDN or YOUR name) []: localhost
Email Address []: admin@example.com
6. nginx.conf에 접속하셔서 하단에 코드를 넣고 저장합니다.
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
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 /var/log/nginx/access.log main;
sendfile on;
keepalive_timeout 65;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
# HTTP(포트 80) 요청을 HTTPS(포트 443)로 리디렉션하는 서버 블록
server {
listen 80;
server_name (도메인 host);
# 모든 요청을 HTTPS로 리디렉션
location / {
return 301 https://$host$request_uri;
}
}
server {
listen 443 ssl;
server_name (도메인 host);
location /test/ {
proxy_pass http://127.0.0.1:3003;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt;
ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH:!SHA1";
}
추가 설명)
server_name : 현재 서버에 연결되 도메인 host를 넣으시면 됩니다.
proxy_pass : 단순하게 내부 서버를 이용하는 거면 http://127.0.0.1 port는 현재 실행 port, 외부 ip일경우에는 postman으로 테스트할 때 실서버 api 그대로 port까지만 넣으시면 됩니다.
7. nginx 설정 파일을 검증 및 재시작합니다.
sudo nginx -t
sudo service nginx restart
♣현재 이과정까지 진행하고 success가 되었는데도 안될경우에는 방화벽이 원인일 수 있습니다.
참고
https://stackoverflow.com/questions/24729024/open-firewall-port-on-centos-7
1. firewalld를 시작합니다.
systemctl start firewalld
2. firewalld의 public 영역에 443번 포트를 영구적으로 추가합니다.
firewall-cmd --zone=public --add-port=443/tcp --permanent
3. 방화벽 규칙을 다시 로드하여 새로 추가한 규칙을 적용합니다.
firewall-cmd --reload