Linux 는 Nginx 설정 SSL 을 통 해 서버 / 클 라 이언 트 양 방향 인증 실현 (상세)
jdk 압축 을 opt 디 렉 터 리 에 압축 해제:
tar zxvf /opt/jdk-8u144-linux-x64.tar.gz -C /opt/
환경 변수 설정:
vi 명령 으로 profile 파일 편집
vi /etc/profile
키 i 를 누 르 면 편집 모드 를 열 고 파일 마지막 에 추가 합 니 다:
export JAVA_HOME="/opt/jdk1.8.0_144"
export PATH="$JAVA_HOME/bin:$PATH"
그 중 jdk 1.8.0144 jdk 가압 후의 폴 더 입 니 다. 수정 이 완료 되면 esc 키 는 명령 모드 로 돌아 갑 니 다. 입력: x 저장 및 종료.
java -version
jdk 버 전 을 표시 하면 설정 이 성공 합 니 다.
비고: tomcat 다운로드 후 압축 을 풀 면 됩 니 다. 환경 변 수 를 설정 할 필요 가 없습니다.
2. openssl 설치
yum install openssl
3. yun 소스 를 설정 하고 nginx 를 설치 합 니 다 (centos 는 yum 설치 nginx 를 지원 하지 않 기 때문에 설정 해 야 합 니 다)
vi /etc/yum.repos.d/nginx.repo
다음 설정 추가:
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/x86_64/
gpgcheck=0
enabled=1
그 중에서 '7' 은 CentOS 7 을 대표 하고 'x86 64' 는 시스템 구 조 를 대표 한다.
설치 nginx:
yum install nginx
4. nginx 인증서 생 성
인증서 폴 더 를 만 들 고 다음 명령 을 순서대로 입력 하 십시오.
cd /etc/nginx
sudo mkdir ca
cd ca
sudo mkdir newcerts private conf server users
conf 디 렉 터 리 새 openssl. conf 파일:
vi /etc/nginx/ca/conf/openssl.conf
다음 설정 추가:
[ ca ]
default_ca = myserver
[ myserver ]
dir = /etc/nginx/ca
database = /etc/nginx/ca/index.txt
new_certs_dir = /etc/nginx/ca/newcerts
certificate = /etc/nginx/ca/private/ca.crt
serial = /etc/nginx/ca/serial
private_key = /etc/nginx/ca/private/ca.key
RANDFILE = /etc/nginx/ca/private/.rand
default_days = 3650
default_crl_days = 3650
default_md = sha256
unique_subject = no
policy = policy_any
[ policy_any ]
countryName = match
stateOrProvinceName = match
organizationName = match
localityName = optional
commonName = supplied
emailAddress = optional
개인 디 렉 터 리 루트 인증서 만 들 기
비밀 키 키 파일 생 성:
sudo openssl genrsa -out /etc/nginx/ca/private/ca.key 2048
루트 인증서 생 성 요청 csr 파일:
sudo openssl req -new -key /etc/nginx/ca/private/ca.key -out private/ca.csr
증빙 crt 파일 생 성:
sudo openssl x509 -req -days 3650 -in /etc/nginx/ca/private/ca.csr -signkey /etc/nginx/ca/private/ca.key -out /etc/nginx/ca/private/ca.crt
키 시작 시퀀스 번호 설정:
sudo echo FACE > /etc/nginx/ca/serial
CA 키 라 이브 러 리 만 들 기:
sudo touch /etc/nginx/ca/index.txt
"사용자 인증서" 를 제거 하기 위해 인증서 취소 목록 을 만 듭 니 다:
sudo openssl ca -gencrl -out /etc/nginx/ca/private/ca.crl -crldays 7 -config "/etc/nginx/ca/conf/openssl.conf"
서버 디 렉 터 리 생 성 서버 인증서
비밀 키 키 파일 생 성:
sudo openssl genrsa -out /etc/nginx/ca/server/server.key 2048
인증서 요청 csr 파일 생 성:
sudo openssl req -new -key /etc/nginx/ca/server/server.key -out /etc/nginx/ca/server/server.csr
증빙 crt 파일 생 성:
sudo openssl ca -in /etc/nginx/ca/server/server.csr -cert /etc/nginx/ca/private/ca.crt -keyfile /etc/nginx/ca/private/ca.key -out /etc/nginx/ca/server/server.crt -config "/etc/nginx/ca/conf/openssl.conf"
users 디 렉 터 리 클 라 이언 트 인증서 만 들 기
비밀 키 키 파일 생 성:
sudo openssl genrsa -des3 -out /etc/nginx/ca/users/client.key 2048
인증서 요청 csr 파일 생 성:
sudo openssl req -new -key /etc/nginx/ca/users/client.key -out /etc/nginx/ca/users/client.csr
증빙 crt 파일 생 성:
sudo openssl ca -in /etc/nginx/ca/users/client.csr -cert /etc/nginx/ca/private/ca.crt -keyfile /etc/nginx/ca/private/ca.key -out /etc/nginx/ca/users/client.crt -config "/etc/nginx/ca/conf/openssl.conf"
5. Nginx 프로필 nginx. conf 수정
user root;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
#pid /var/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;
#tcp_nopush on;
keepalive_timeout 120;
#gzip on;
client_max_body_size 120m;
client_body_buffer_size 128k;
server_names_hash_bucket_size 128;
large_client_header_buffers 4 4k;
open_file_cache max=8192 inactive=20s;
open_file_cache_min_uses 1;
open_file_cache_valid 30s;
upstream tomcat_server {
server 192.168.1.220:8080 fail_timeout=0;
}
server {
listen 443;
server_name 192.168.1.220;
ssi on;
ssi_silent_errors on;
ssi_types text/shtml;
ssl on;
ssl_certificate /etc/nginx/ca/server/server.crt;
ssl_certificate_key /etc/nginx/ca/server/server.key;
ssl_client_certificate /etc/nginx/ca/private/ca.crt;
ssl_session_timeout 5m;
ssl_verify_client on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;
charset utf-8;
access_log logs/host.access.log main;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location = /favicon.ico {
log_not_found off;
access_log off;
expires 90d;
}
location / {
proxy_pass http://tomcat_server;
include proxy.conf;
}
}
#include /etc/nginx/conf.d/*.conf;
}
비고: upstream tomcatserver 의 server 는 nginx 퍼 가기 서버 의 ip 주소 와 포트 번호 로 변경 되 었 습 니 다. server 의 servernginx 가 있 는 서버 ip 입 니 다. ssl 보안 인증 을 설정 하기 때문에 https 기본 포트 번호 443 을 사용 합 니 다. 또한 nginx 를 설치 한 후 루트 디 렉 터 리 에 logs 폴 더 가 없 으 면 수 동 으로 만 들 수 있 습 니 다. 그렇지 않 으 면 nginx 를 시작 하면 logs 폴 더 를 찾 을 수 없 음 을 알려 줍 니 다.
6. Nginx 프 록 시 설정
nginx 의 proxy. conf 파일 편집:
vi /etc/nginx/proxy.conf
다음 설정 추가:
proxy_redirect off;
proxy_connect_timeout 60;
proxy_read_timeout 600;
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;
proxy_set_header X-SSL-Client-Cert $ssl_client_cert;
proxy_set_header X-SSL-DN $ssl_client_s_dn;
7. Tomcat 프로필 server. xml 수정
설정 이 끝 났 습 니 다. 다음 테스트 를 해 보 겠 습 니 다.
8. Tomcat 과 Nginx 서비스 시작
tomcat 서비스 시작:
opt/apache-tomcat-8.5.20/bin/startup.sh
시작 로그 인쇄:
tail -f opt/apache-tomcat-8.5.20/logs/catalina.out
nginx 서비스 시작:
nginx -c /etc/nginx/nginx.conf
9. https 테스트 요청
클 라 이언 트 인증서. crt 를 Windows 에서 설치 할 수 있 는. p12 형식 으로 변환 합 니 다.
sudo openssl pkcs12 -export -clcerts -in /etc/nginx/ca/users/client.crt -inkey /etc/nginx/ca/users/client.key -out /etc/nginx/ca/users/client.p12
생 성 후. p12 형식의 인증 서 를 windows 시스템 에 복사 하여 설치 하고 브 라 우 저 를 다시 시작 하여 https 요청 을 방문 합 니 다. 예 를 들 어:https://192.168.1.220:443설 치 된 인증 서 를 선택 하면 tomcat 를 표시 하거나 첫 페이지 를 사용 하면 설치 에 성 공 했 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
linux2에 nginx 설치설치 가능한 nginx를 확인하고, 해당 nginx를 설치한다. localhost 혹은 해당 ip로 접속을 하면 nginx 화면을 볼 수 있다....
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.