특히 HPKP 헤더 (또는 일반적으로 다른 긴 헤더)를 구성 할 때 nginx 구성의 라인을 여러 라인으로 분할하는 것이 유용합니다.
원하는 결과입니다.
pin-sha256="X3pGTSOuJeEVw989IJ/cEtXUEmy52zs1TZQrU06KUKg=";
pin-sha256="MHJYVThihUrJcxW6wcqyOISTXIsInsdj3xK8QrZbHec=";
pin-sha256="isi41AizREkLvvft0IRW4u3XMFR2Yg7bvrF7padyCJg=";
pin-sha256="I/bAACUzdYEFNw2ZKRaypOyYvvOtqBzg21g9a5WVClg=";
pin-sha256="Y4/Gxyck5JLLnC/zWHtSHfNljuMbOJi6dRQuRJTgYdo=";
pin-sha256="/oCVQg3nP3DroGpFdAbaiYzenycUftqrH3LAyaIal2g=";
그러나 브라우저의 경우 한 줄만 있어야합니다.
pin-sha256="X3pGTSOuJeEVw989IJ/cEtXUEmy52zs1TZQrU06KUKg="; pin-sha256="MHJYVThihUrJcxW6wcqyOISTXIsInsdj3xK8QrZbHec="; pin-sha256="isi41AizREkLvvft0IRW4u3XMFR2Yg7bvrF7padyCJg="; pin-sha256="I/bAACUzdYEFNw2ZKRaypOyYvvOtqBzg21g9a5WVClg="; pin-sha256="Y4/Gxyck5JLLnC/zWHtSHfNljuMbOJi6dRQuRJTgYdo="; pin-sha256="/oCVQg3nP3DroGpFdAbaiYzenycUftqrH3LAyaIal2g=";
그래서 몇 가지 시도했지만 결과에 만족하지 않습니다 ...
첫 번째 시도 : 그냥 나누십시오
add_header Public-Key-Pins '
pin-sha256="X3pGTSOuJeEVw989IJ/cEtXUEmy52zs1TZQrU06KUKg=";
pin-sha256="MHJYVThihUrJcxW6wcqyOISTXIsInsdj3xK8QrZbHec=";
pin-sha256="isi41AizREkLvvft0IRW4u3XMFR2Yg7bvrF7padyCJg=";
pin-sha256="I/bAACUzdYEFNw2ZKRaypOyYvvOtqBzg21g9a5WVClg=";
pin-sha256="Y4/Gxyck5JLLnC/zWHtSHfNljuMbOJi6dRQuRJTgYdo=";
pin-sha256="/oCVQg3nP3DroGpFdAbaiYzenycUftqrH3LAyaIal2g=";
'
이것은 작동하지만 curl
브라우저가 모든 줄 바꿈으로 헤더를 수신한다는 것을 알 수 있습니다 ...
두 번째 시도 : 백 슬래시
실제로 이미 링크 된 기사에서 Scott Helme는 다음을 권장합니다.
add_header Public-Key-Pins ' \
pin-sha256="X3pGTSOuJeEVw989IJ/cEtXUEmy52zs1TZQrU06KUKg="; \
pin-sha256="MHJYVThihUrJcxW6wcqyOISTXIsInsdj3xK8QrZbHec="; \
pin-sha256="isi41AizREkLvvft0IRW4u3XMFR2Yg7bvrF7padyCJg="; \
pin-sha256="I/bAACUzdYEFNw2ZKRaypOyYvvOtqBzg21g9a5WVClg="; \
pin-sha256="Y4/Gxyck5JLLnC/zWHtSHfNljuMbOJi6dRQuRJTgYdo="; \
pin-sha256="/oCVQg3nP3DroGpFdAbaiYzenycUftqrH3LAyaIal2g="; \
'
그러나 제 경우에는 슬래시를 추가하고 브라우저로 반환했기 때문에 작동하지 않습니다.
어떻게해야합니까?
보너스
물론 모든 라인에 대한 의견은 멋진 추가 일 것입니다 :
pin-sha256="X3pGTSOuJeEVw989IJ/cEtXUEmy52zs1TZQrU06KUKg="; # current ECDSA
pin-sha256="MHJYVThihUrJcxW6wcqyOISTXIsInsdj3xK8QrZbHec="; # current RSA (nginx 1.11.0)
pin-sha256="isi41AizREkLvvft0IRW4u3XMFR2Yg7bvrF7padyCJg="; # backup ECDSA 1
pin-sha256="I/bAACUzdYEFNw2ZKRaypOyYvvOtqBzg21g9a5WVClg="; # backup ECDSA 2
pin-sha256="Y4/Gxyck5JLLnC/zWHtSHfNljuMbOJi6dRQuRJTgYdo="; # backup RSA 1
pin-sha256="/oCVQg3nP3DroGpFdAbaiYzenycUftqrH3LAyaIal2g="; # backup RSA 2
1
Lua 또는 Perl 모듈을 사용할 수 있습니까?
—
Alexey Ten
뭐? 어떻게해야합니까? 그러나 그 외에도 nginx 구성 파일에서 직접이 솔루션을 원합니다. 나는 구성 지시문에 여러 줄을 사용할 수있는 특별한 요청이 아니라는 것을 의미합니다 ... 적어도 이것이 내가하는 것입니다.
—
rugk 2016 년
이것은 여전히 구성 파일에있을 수 있습니다. nginx가 이러한 모듈 중 하나를 사용하여 컴파일 된 경우 문제입니다.
—
Alexey Ten
현재 nginx에 의해 컴파일 된 기본 모듈 세트에 있지 않는 한,이 모듈들로 컴파일되지 않았지만, 그러한 모듈로 버전을 확실히 컴파일 할 수있었습니다 ...이 "문제"를 해결하는 데 도움이된다면 ...
—
rugk