SSL CSR을 재사용 할 수 있습니까?


21

새 웹 사이트를 테스트하기 위해 자체 인증 SSL 인증서를 생성했습니다. 사이트가 게시 될 때가되었고 이제 GeoTrust에서 인증서를 구매하고 싶습니다. 자체 인증서에 대해 생성 한 것과 동일한 CSR을 사용할 수 있습니까, 아니면 새로운 CSR을 만들어야합니까?

풍부한

답변:


19

동일한 키, 도메인 (일명 공통 이름), 연락처 세부 정보 및 유효 기간을 사용하는 한 동일한 CSR을 사용할 수 있어야합니다.

CSR을 정직하게 생성하는 것은 매우 간단한 일이지만, 많은 SSL 제공 업체가 엄격한 연락처 정보를 수정해야하는 경우 큰 문제가되지 않습니다.


1
동의한다. CSR을 생성하는 것은 사소한 작업이지만 재사용을 시도하는 이유가 무엇인지 알지 못합니다.
joeqwerty

5
OpenSSL을 설치하면 약 30 초 안에 새 CSR을 생성 할 수 있습니다. 그리고 당신이 훨씬 오래 걸릴 것이라고 생각한다면- 연습이 필요하기 때문에 확실히하십시오 !!!!!
Austin '

1
OP의 경우에는 해당되지 않지만 인증서 고정을 사용하려는 경우 클라이언트 쪽 앱을 업데이트하는 것보다 동일한 CSR을 사용하는 것이 더 실용적입니다.
검은

키, 도메인 및 세부 사항이 동일하면 CSR이 동일합니다.
graywh

11

귀하의 예를 들어, CSR을 재사용하려고 노력할 가치가 있다고 생각하지 않습니다. 그러나, 다양한 팀의 Apple iOS 개발자에게는 (나와 마찬가지로) 이것을 수행 할만한 이유가 있습니다. 우리는 모든 서명 인증서를 생성하고 (실제로 Apple에 요청) 동일한 개인 키에서 인증서를 푸시합니다. 그렇게하면 85 개 이상의 앱에서 모두 쉽게 협업 할 수 있습니다. 이러한 이유로 우리는 단일 CSR을 유지하고 키가 유효한 한 항상 동일한 CSR을 사용합니다.

내가 아는 한 단일 개인 키에서 CSR을 반복적으로 생성 할 이유가 없습니다. 내가 틀렸다면 고치고 싶습니다.


6
수정없이 4 년이 지났습니다. 내가 틀린 것 같아요.
Bruno Bronosky

5

기간이 제한된 인증서를 사용하면 개인 키가 유출되는 경우 피해를 줄일 수 있습니다. CSR을 재사용하면 개인 키도 재사용되므로 CSR을 재사용하면 개인 키를 소유 한 사람이 다른 사람으로 영원히 사칭 할 수 있습니다.

CSR뿐만 아니라 개인 키 생성을 자동화하고 끊임없이 변화하는 개인 키를 애플리케이션 빌드 서버 및 푸시 서버에 배포하는 편리한 방법을 찾는 것이 좋습니다. 대부분의 필사자 개발자는 일반적으로 앱 스토어에 대한 릴리스 / 배포 빌드를 수행 할 필요가 없으므로 개인 키가 필요하지 않습니다.


1
"CSR을 다시 사용한다는 것은 개인 키의 재사용을 의미합니다"라는 것이 사실이지만 "CSR을 재사용하면 영원히 가장하는 사람"이라는 의미는 아닙니다. N 개월 동안 키를 사용하기로 결정한 경우 N 개월 동안 동일한 CSR을 사용하는 것이 좋습니다.
Bruno Bronosky

2
네, 맞습니다 Bruno. 나는 CSR을 재사용하는 사람들이 무지에서 그렇게했다고 가정했고, 따라서 그 연습을 "영원히"계속했다고 생각했지만, 제한된 시간 동안 신중한 계획을 바탕으로 문제를 알고있는 사람들도있을 것입니다.
Stefan L

1

이론 상으로는 동일한 CSR을 재사용 할 수 있습니다.

  • 공개 키 ( RSA 암호화에 사용 된 숫자 만 (특정 수학))
  • "주제"세부 정보 (본인, 도메인 등) 해당 공개 키의 소유자를 식별하는 데 사용되는 텍스트

이것이 결국 인증서 (PublicKey 인증서의 줄임말)입니다.

그러나 다른 답변에서 언급했듯이 개인 키를 정기적으로 변경하여 새 인증서와 새로운 CSR을 얻는 것이 좋습니다.

CSR의 내용을 쉽게 볼 수 있습니다

예 :

$ openssl req -new -batch -subj "/CN=My Common Name/OU=My Org Unit/O=My Organisation" -sha256 -newkey rsa:2048 -keyout private.key -nodes -out request.csr
Generating a 2048 bit RSA private key
.............................................................................................+++++
.........+++++
writing new private key to 'private.key'
-----

$ ls
private.key  //  keep that private, the PublicKey side is easily be generated from this
request.csr // your PublicKey + Subject details

CSR

$ openssl req -in request.csr -text -noout
Certificate Request:
    Data:
        Version: 1 (0x0)
        Subject: CN = My Common Name, OU = My Org Unit, O = My Organisation
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                RSA Public-Key: (2048 bit)
                Modulus:                    ///////// Matches the PrivateKey modulus
                    00:b1:e8:de:e6:bf:21:45:51:75:15:23:5e:6e:7a:
                    7d:95:53:e5:d5:ec:5b:38:cd:7f:38:2d:53:8a:54:
...
                    fe:b5:78:de:9b:c1:ee:c1:51:6f:fd:fb:0e:62:09:
                    03:87
                Exponent: 65537 (0x10001)   ///////// Matches the PrivateKey publicExponent
        Attributes:
            a0:00
    Signature Algorithm: sha256WithRSAEncryption
         a1:44:1f:b2:ec:c0:82:bc:99:da:69:ce:3e:77:9f:46:51:95:
...
         3b:2d:84:e3:73:ac:be:c8:da:29:fd:62:90:11:dd:8a:a6:4f:
         7b:f8:ac:f1

그리고 PrivateKey

$ openssl rsa -in private.key -text -noout
// all the below are numbers that takes part in Mathematical encryption (search for RSA maths)
RSA Private-Key: (2048 bit, 2 primes)

// The Numbers that can be freely published
modulus:
    00:b1:e8:de:e6:bf:21:45:51:75:15:23:5e:6e:7a:
    7d:95:53:e5:d5:ec:5b:38:cd:7f:38:2d:53:8a:54:
...
    fe:b5:78:de:9b:c1:ee:c1:51:6f:fd:fb:0e:62:09:
    03:87
publicExponent: 65537 (0x10001)

// The Numbers that must be kept private !
privateExponent:
    0a:81:73:d8:30:65:28:90:bc:d7:38:b5:74:d4:aa:
...
    b1:9b:30:2e:a2:dd:46:c1:10:0f:b0:da:ac:b6:ea:
    01
prime1:
    00:e0:28:01:87:95:70:d0:b8:21:07:e0:4f:96:a6:
...
    66:28:8f:3d:d7:eb:e6:b4:81
prime2:
    00:cb:2e:fe:1b:b6:30:ea:8d:9e:6d:23:83:d8:b6:
...
    4d:64:39:5c:9c:18:a0:14:07
exponent1:
    22:e2:36:f2:b9:af:f7:db:5f:d0:90:f8:f1:d1:ff:
...
    3a:31:a8:87:2c:c0:17:81
exponent2:
    5a:8b:3d:77:f1:ef:c8:86:85:a4:13:20:8d:31:a4:
...
    a5:ba:1e:37:fd:8d:50:7f
coefficient:
    00:d3:d3:b6:81:4b:a9:c2:aa:ff:e1:07:cb:de:ea:
...
    5c:e9:3b:d3:f7:67:82:c3:7f
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.