Let's Encrypt와 함께 HP 프린터에 SSL 인증서를 설치하기

2026년 6월 9일

레거시 시스템이 싫어요

이 가이드는 HP DeskJet 3637에서 테스트되었습니다. 사용하시는 프린터 모델에 내장된 웹 서버가 얼마나 낙후되었는지에 따라 절차가 다를 수 있습니다. 참고로, 이 글을 작성하는 시점에 3637의 펌웨어 버전은 SWP2FN2223AR이며 빌드 날짜는 2022년 5월 30일입니다.

  1. 아직 안 하셨다면 프린터에 정적 IP 주소를 설정하세요. (나중에 DHCP 리스가 만기되서 드라이버를 6-7번 재설치하고 여럿 종교에 제사를 지내는 수고를 덜어주기도 하죠)
  2. 정적 IP 주소를 가리키는 DNS A 레코드를 생성합니다 (예를 들어, print.example.com -> 192.168.0.150)
  3. certbot를 실행합니다:
    certbot certonly -v --manual --preferred-challenges dns -d print.example.com --key-type rsa
    여기서 --key-type rsa 플래그가 중요한데, 최신 기본값은 EC 키 타입이기 때문입니다. 물론, 산업 폐기물 HP가 그따위 알아볼리 없으니 어쩔 수 없죠. (망해라 HP)
  4. DNS 챌런지 관련 프롬프트를 따라 완성합니다
  5. 이제 개별 인증서 파일이 다운로드되면, certbot이 해당 파일들을 어디에 저장해두었는지 확인해둡니다. 이제 PKCS#12 파일로 번들을 해줘야 합니다. 이를 위해 openssl을 사용합니다:
    openssl pkcs12 -export -out printer.pfx -inkey privkey.pem -in cert.pem
    여기서 내보내기 비밀번호를 물어보는데, 아무 임시 비밀번호를 입력하면 됩니다. 조금 있다가 다시 입력해야 하기 때문에 잠시 기억해둡니다.
  6. 프린터의 IP(나 아까 설정한 도메인)에 접속하고, 다음 경로로 진입합니다: “Network > Advanced Settings > Certificates”
  7. “Configure”를 클릭한 후, “Import a Certificate and Private Key”를 선택합니다.
  8. 5번에서 만든 printer.pfx 파일을 선택한 후, 아까 입력했던 임시 비밀번호를 입력한 후, “Mark private key as exportable”을 체크하지 않고 내버려둡니다.
  9. “Finish”를 클릭하여 저장합니다.

이제 3개월마다 반복하는 절차만 남았군요.

물론, 이 모든 게 다 webUI단에서 이루어지도록 했을 수도 있는데, 그렇게 사용자-친화적이라면 실제로 HP 프린터라고 할 수 있을까요?


초안에 적는 걸 깜빡해서 조금 더 끄적여봅니다:

  • Q: HP를 굳이?

    A: 페북에서 $10밖에 안 해서 샀습니다. 잉크 카트리지가 더 비싸더라고요.

  • Q: HP webUI 상 “Certificate Request” 옵션을 사용하면 안되나요?

    A: 그걸 쓰면 공개 키를 만들 때 지수(exponent)를 3으로 설정해버리는데, 이 세상에 정신나가지 않고서야 그걸 받아주는 CA가 없기 때문이죠. 어떻게 고통스럽게 알아냈는지는 물어보지 말아주세요.