nginx 설정 ssl 양 방향 인증 (배경 로그 인 제한)

3096 단어 nginxlinux
수요: 관리 백그라운드 로그 인 제한, 재직 인원 만 로그 인 가능, 이 직 인원 은 로그 인 할 수 없습니다.
솔 루 션: nginx 설정 ssl 양 방향 검증
            :   ubuntu 14.04
openssl     :   /etc/ssl/openssl.conf
nginx       :   1.8.0
nginx ssl   :   /etc/nginx/admin

-------------------------------------------
1. openssl 을 사용 하여 인증서 센터 구현
     (1) 인증서 센터 설정 파일 편집 (/ etc / ssl / openssl. conf)
         dir             = /etc/ssl
     (2) newcerts 만 들 기 목차       
  mkdir -p /etc/ssl/newcerts

     (3) 인증서 비밀 키 만 들 기
  cd /etc/ssl
  ##         , 4 HEX  
  echo 12A8 > serial
  ##        
  touch index.txt
  ##   crlnumber        ##
  echo 12A8 > crlnumber
  cd /etc/ssl/private
  openssl genrsa -out cakey.pem 2048

     (4) 자체 서명 인증서 생 성
  cd /etc/ssl/        
  openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3655

2. 서버 인증서 만 들 기
  mkdir -p /etc/nginx/admin
  cd /etc/nginx/admin      
  openssl genrsa -out nginx.key 1024 
  openssl req -new -key nginx.key -out nginx.csr
  openssl ca -in nginx.csr -out nginx.crt -days 3650
  openssl ca -gencrl -crldays 7 -out ca.crl    #   crl  ,       

3. 클 라 이언 트 브 라 우 저 인증서 만 들 기 (예 를 들 어 사용자 만 들 기: 리 레이)
  mkdir -p /etc/nginx/admin/user/lilei        #               
  cd /etc/nginx/admin/user/lilei 
  openssl genrsa -out lilei.key 1024
  openssl req -new -key lilei.key -out lilei.csr
  openssl ca -in lilei.csr -out lilei.crt -days 3650
  #                      
  openssl pkcs12 -export -clcerts -in lilei.crt -inkey lilei.key -out lilei.p12

4. Nginx 서버 인증 설정
  ssl                  on;
  ssl_certificate         /etc/nginx/admin/nginx.crt;
  ssl_certificate_key     /etc/nginx/admin/nginx.key;
  ssl_client_certificate  /etc/ssl/cacert.pem;
  ssl_session_timeout  5m;
  ssl_verify_client on; #         
  ssl_protocols  SSLv2 SSLv3 TLSv1;
  ssl_ciphers  ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
  ssl_prefer_server_ciphers   on;
  ssl_crl /etc/nginx/admin/ca.crl;  #        

5. 사용자 인증서 취소
  cd /etc/ssl/
  grep "lilei" index.txt        
  V       250817084430Z           12AC    unknown /C=CN/ST=FUJIAN/O=xxx/OU=xxxx/CN=xxxxx/emailAddress=xxxxx
       12AC
  cd  /etc/ssl/newcerts
  openssl ca -revoke 12AC.pem                ##    

    
     그리고 index. txt 보기  V 가 R 이 되 는 걸 볼 수 있어 요.
     주의해 야 할 것 은 이 파일 을 업데이트 해 야 한 다 는 것 입 니 다. 그렇지 않 으 면 인증 서 를 취소 한 후에 도 인증 을 통과 할 수 있 습 니 다.또한 저 희 는 crl 파일 의 만 료 시간 을 7 일 로 설정 합 니 다. 만약 7 일 후에 crl 파일 을 업데이트 하지 않 으 면 nginx 서버 는 모든 인증서 의 매 칭 을 거부 합 니 다.그래서 우 리 는 crontab 를 열 어 crl 파일 을 정기 적 으로 업데이트 해 야 합 니 다.
     정시 작업 스 크 립 트 는 다음 과 같 습 니 다:
  #!/bin/sh
  NGINX_SSL_PATH=/etc/nginx/admin
  
  cd $NGINX_SSL_PATH
  openssl ca -gencrl -crldays 7 -out ca.crl
  DATE_NOW1=$(/bin/date +%Y-%m-%d\ %H:%M:%S)
  echo "$DATE_NOW1 has success updata" >> /home/cron/updata_cakey.log
  /etc/init.d/nginx reload

좋은 웹페이지 즐겨찾기