In The Jailhouse Now
Java 11, 156 151 148 118 89 bytes

n-&gt;&quot;╔&quot;+&quot;╦&quot;.repeat(n-=3)+&quot;╗\n&quot;+(&quot;╠&quot;+&quot;╬&quot;.repeat(n)+&quot;╣\n&quot;).repeat(n+1)+&quot;╚&quot;+&quot;╩&quot;.repeat(n)+&quot;╝&quot;

Try it online.
Old 118 bytes answer in Java 8:
n-&gt;{String a=&quot;╔&quot;,b=&quot;╠&quot;,c=&quot;╚&quot;;for(int i=n;i--&gt;3;a+=&quot;╦&quot;,b+=&quot;╬&quot;)c+=&quot;╩&quot;;a+=&quot;╗\n&quot;;for(b+=&quot;╣\n&quot;;n--&gt;2;)a+=b;return a+c+&quot;╝&quot;;}

-30 bytes by creating a port of @raznagul C# (.NET Core) answer, after I golfed 5 bytes.
Try it here.
Explanation:
n-&gt;                    // Method with integer parameter and String return-type
  &quot;╔&quot;                  //  The top-left corner
  +&quot;╦&quot;                 //  Appended with the top edge
      .repeat(n-=3)    //  Repeated input-3 times (-2 for the corners, -1 for width)
  +&quot;╗\n&quot;               //  Appended with the top-right corner and a newline
  +(&quot;╠&quot;                //   The left edge
    +&quot;╬&quot;               //   Appended with the middle part
        .repeat(n)     //   Repeated input-3 times (-2 for edges, -1 for width)
    +&quot;╣\n&quot;             //   Appended with the right edge and a newline
          ).repeat(n+1)//  And repeat this entire line n-2 times (-2 for first/last rows)
  +&quot;╚&quot;                 //  Appended with the bottom-left corner
  +&quot;╩&quot;                 //  Appended with the bottom edge
      .repeat(n)       //  Repeated input-3 times
  +&quot;╝&quot;                 //  Appended with the bottom-right corners